鍍金池/ 問答/Python  HTML/ 急,原生form表單下載excal如何監(jiān)聽過程及各種情況,提前感謝大佬們

急,原生form表單下載excal如何監(jiān)聽過程及各種情況,提前感謝大佬們

1.因某些環(huán)境原因,后臺無法給文件下載地址,以及無法使用blob下載二進制流,ajax模擬form提交無法直接下載excal

2.現(xiàn)在下載使用瀏覽器的form表單去下載excal文件,
觸發(fā)下載按鈕執(zhí)行下面的代碼, 請求form后,會有后臺查詢數(shù)據(jù)的過程,數(shù)據(jù)量大了就有十幾秒,查詢完瀏覽器才會彈出下載框,我前臺如何監(jiān)聽到form后臺的查詢過程,畢竟不是ajax會有返回結(jié)果,如何給用戶頁面加loading之類的效果,或者如何監(jiān)聽用戶點擊另存為 取消另存為等操作?

3.感謝大佬們能看到這里,希望能幫助下我。

export default function(options){
    return new Promise((resolve, reject)=>{
        let dlform = document.createElement('form');
        dlform.style = "display:none;";
        dlform.method = options.method;
        dlform.action = options.url;
        // dlform.target = '_blank';   打開新頁面會是action的地址,我更操作不了,無法加loading之類的。

    let token = document.createElement('input');
        token.type = 'hidden';
        token.name = 'x-access-token';
        token.value = tool.getSession('TKid');
        dlform.appendChild(token);

        for(let index in options.data){
            let hdnFilePath = document.createElement('input');
                hdnFilePath.type = 'hidden';
                hdnFilePath.name = index;
                hdnFilePath.value = options.data[index];
                dlform.appendChild(hdnFilePath);
        }

        document.body.appendChild(dlform);
        dlform.submit();
        document.body.removeChild(dlform);
        resolve('下載')
    })
    
}    
回答
編輯回答
女流氓

Promise
之前直接開啟loading狀態(tài)
resolve
后關(guān)閉loading

監(jiān)控用戶點擊另存為不是
oncontextmenu嗎

2018年9月11日 18:36