2017-03-16 7 views
0

IE11でthree.jsを使用していて、addEventListener funcに問題があります。addEventListener IE11バグ

は、関数内のコードが実行されないさん:

var importOption = new UI.Panel(); 
importOption.setClass('option'); 
importOption.setTextContent('Import'); 
importOption.onClick(function() { 

    fileInput.click(); 

}); 
options.add(importOption); 

var fileInput = document.createElement('input'); 
fileInput.type = 'file'; 
fileInput.addEventListener('change', function (event) { 
     editor.loader.loadFile(fileInput.files[ 0 ]); 
}); 

addEventListenerをfuncを、何らかの形で内部関数が呼び出されていない賭けに精通しているブラウザ私はFileInputクラスのボタンを「クリック」する場合

「変更」機能をどのように起動することができますか?私はそれがコードに書かれているように、ユーザのボタン押下によってトリガされるようにしたい。

このコードはthree.jsソースファイルから取得したもので、クロムで正常に動作します。

ありがとうございます。

+0

@アンドレアス編集された質問をご覧ください – RoeePeleg

答えて

0

このようにして作成されたhtml要素にclickイベントをバインドするのと同様の問題がありました。 Windows 8ではIE11では動作しませんでしたが、Windows 10、Edge、および他のすべてのブラウザではIE11で動作しました。ログは私のコンソールに表示されていなかったこと

var trigger = document.createElement('div'); 
fileInput.addEventListener('click', function (e) { 
    console.log("clicked the trigger"); 
}); 
trigger.click(); 

私のコードは次のように見えました。

私は、document.bodyにトリガーを追加することで問題を解決できることがわかりました。

var trigger = document.createElement('div'); 
trigger.style.display = "none"; 
document.body.appendChild(trigger); 
fileInput.addEventListener('click', function (e) { 
    console.log("clicked the trigger"); 
}); 
trigger.click(); 

希望します。