window.open 打開窗口 并用post方式提交

方法

/**
 * window.open 打開窗口 并用post方式提交
 * @param {Object} url
 * @param {Object} data
 * @param {Object} name
 */
openPostWindow(url, data, name){
    // 創(chuàng)建 form 表單
    let tempForm = document.createElement('form');
    tempForm.id = 'tempForm';
    tempForm.action = url;
    tempForm.method = 'post';
    // tempForm.enctype = 'multipart/form-data';
    tempForm.target = name;
    
    // 創(chuàng)建 用戶名輸入框
    let userName = document.createElement('input');
    userName.type = 'hidden';
    userName.name = 'userName';
    userName.value = data.userName;
    
    // 創(chuàng)建 密碼輸入框
    let passWord = document.createElement('input');
    passWord.type = 'hidden';
    passWord.name = 'passWord';
    passWord.value = data.passWord;
    
    // 將用戶名和密碼輸入框插入 form 表單
    tempForm.appendChild(userName);
    tempForm.appendChild(passWord);
    // 將 form 表單插入 body
    document.body.appendChild(tempForm);

    // 增加提交監(jiān)聽 處理瀏覽器的兼容性
    if (window.attachEvent) {
        tempForm.attachEvent('onsubmit', () => { window.open(url, name); });
    } else if (window.addEventListener) {
        tempForm.addEventListener('onsubmit', () => { window.open(url, name); });  
    }

    // 觸發(fā)監(jiān)聽 處理瀏覽器的兼容性
    if(tempForm.fireEvent){
        tempForm.fireEvent('onsubmit');
    }else{
        let evt = document.createEvent('HTMLEvents');
        evt.initEvent('onsubmit', true, true);
        tempForm.dispatchEvent(evt);
    }

    // form 表單提交事件
    tempForm.submit();
    // 從 body 中移除 form 表單
    document.body.removeChild(tempForm);
}

調(diào)用

let params = {
    userName: 'userName'
    passWord: 'passWord'
}
this.openPostWindow('http://xxxx.yyyy.com/doorManagerLoginOA', params, '_blank');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容