无法绑定 window 方法:"Invalid calling object"
Can't bind a window method : "Invalid calling object"
我正在 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");
谢谢!
当您调用 window.navigator.msSaveOrOpenBlob()
时,上下文(this
引用)是 navigator
。但是,当您执行 navigatorMsSave()
时,它不是,它将是您从中调用的函数的范围,或者是全局范围,具体取决于您调用它的位置。
你可以试试
var navigatorMsSave = window.navigator.msSaveOrOpenBlob.bind(window.navigator);
我正在 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");
谢谢!
当您调用 window.navigator.msSaveOrOpenBlob()
时,上下文(this
引用)是 navigator
。但是,当您执行 navigatorMsSave()
时,它不是,它将是您从中调用的函数的范围,或者是全局范围,具体取决于您调用它的位置。
你可以试试
var navigatorMsSave = window.navigator.msSaveOrOpenBlob.bind(window.navigator);