Chrome瀏覽器M53更新後超連接的dispatchEvent(evt)方法沒法觸發文件下載

一個經典的js前臺文件下載方法:spa

1 var aLink = document.createElement('a');
2 var datatype="data:text/plain;charset=UTF-8,";
3 aLink.href = datatype+content;
4 aLink.download = filename;
5 var evt = document.createEvent("HTMLEvents");//創建一個事件
6 evt.initEvent("click", false, false);//這是一個單擊事件
7 aLink.dispatchEvent(evt);

谷歌認爲:「點擊超連接下載文件」是一個「默認響應」,而默認響應不該由腳本觸發,因此從M53版本開始禁止全部由腳本觸發的默認響應,上述下載方法失效。code

臨時解決方案:把aLink添加到DOM中,讓用戶手動點擊超連接下載。blog

相關文章
相關標籤/搜索