无法绑定窗口方法:“无效的调用对象”

时间:2017-04-12 09:14:56

标签: javascript internet-explorer-11

我在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");

谢谢!

1 个答案:

答案 0 :(得分:0)

当您调用window.navigator.msSaveOrOpenBlob()时,上下文(this引用)为navigator。但是当你执行navigatorMsSave()时,它不是你要调用的功能范围,也不是全局范围,具体取决于你调用它的位置。

你可以尝试

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