JavaScrupt でアップロード ライブラリをコーディングしようとしているときに、IE 11 で奇妙な問題が発生しました。
XMLHttpRequest 2 を使用すると、ファイルをアップロードして進行状況を取得できます。ただし、webworker で実行しようとしても、IE 11 からは何の進歩もありません (私はこのバージョンだけを試しました)。同じコードでエラーが発生します。
ここに例があります:
worker.js
self.addEventListener("message", function(e) {
var file = e.data;
var xhr = new XMLHttpRequest();
if (xhr.upload)
xhr.upload.onprogress = function(event){
// here we get the progression through event.loaded
};
xhr.open('POST', '/upload.php', true);
xhr.send(file);
});
main.js
var uploadworker = new Worker('worker.js');
uploadworker.postMessage( file );
このコードを直接使用すると、どのブラウザーでも機能します。Webworker で使用すると、IE11 では動作しません。実際には、行に「無効な引数」if (xhr.upload)
が表示されます。WebworkerでXMLHttpRequestが使用されている場合、IE11にはこのプロパティが設定されていないようです。
なぜこれが起こるのか誰にも分かりますか?