2017-04-12 59 views
1

我試圖在IE 11上,但它不起作用。有人能解釋我爲什麼嗎?我在其他線程上找不到任何答案。無法綁定窗口方法:「無效的調用對象」

var navigatorMsSave = window.navigator.msSaveOrOpenBlob; 
navigatorMsSave(new Blob([blob], {type: "application/pdf"}), "File.pdf"); 

錯誤代碼:無效調用對象

我所有的變量都還行,因爲當我開始下面的代碼,一切都很好,我可以下載正確的文件。

window.navigator.msSaveOrOpenBlob(new Blob([blob], {type: "application/pdf"}), "File.pdf"); 

謝謝!

回答

0

當您調用window.navigator.msSaveOrOpenBlob()時,上下文(this參考)爲navigator。但是當你做navigatorMsSave()它不是,它會是你調用的函數的範圍,或者全局範圍取決於你調用的地方。

您可以嘗試

var navigatorMsSave = window.navigator.msSaveOrOpenBlob.bind(window.navigator); 
+0

非常感謝您的完整的答案,我現在明白了。綁定是完成這項工作的完美方式:) –