2017-03-16 5 views
0

Ich arbeite mit Three.js auf IE11 und habe ein Problem mit der Funktion addEventListener func;addEventListener IE11 Fehler

Der Code innerhalb der Funktion wird nie wird ausgeführt:

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

der Browser vertraut mit der addEventListener func, Wette irgendwie die innere Funktion wird nicht aufgerufen wird, wenn i ‚Klick‘ FileInput- Taste:

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

    fileInput.click(); 

}); 
options.add(importOption); 

Irgendwelche Ideen, wie kann ich die 'ändern' Funktion auslösen? Ich möchte, dass es durch Drücken der Benutzer-Taste ausgelöst wird, so wie es im Code geschrieben ist.

Dieser Code wurde aus den three.js Quelldateien entnommen, und arbeitet auf Chrom gut.

Vielen Dank im Voraus.

+0

@Andreas bitte die bearbeitete Frage zu sehen – RoeePeleg

Antwort

0

Ich hatte ein ähnliches Problem mit der Bindung eines Click-Ereignisses an ein HTML-Element, das auf diese Weise erstellt wurde. Es funktionierte nicht auf IE11 in Windows 8, aber in IE11 unter Windows 10, Edge und in allen anderen Browsern.

sah Ihr Code wie:

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

Das Protokoll nicht in meiner Konsole erscheinen wurde.

fand ich, dass ich durch das Hinzufügen, den Auslöser document.body das Problem beheben könnte.

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(); 

Hoffe, dass hilft!