2017-04-12 10 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

おかげでたくさんのあなたの完全な答えを、私は今それを理解しようとすることができます。バインディングはこの作業を行うのに最適な方法です:) –

関連する問題