[英]addEventListener IE11 bug
我正在IE11上使用three.js,并且addEventListener函数有问题;
函数内部的代码永远不会执行:
var fileInput = document.createElement( 'input' );
fileInput.type = 'file';
fileInput.addEventListener( 'change', function ( event ) {
editor.loader.loadFile( fileInput.files[ 0 ] );
} );
熟悉addEventListener函数的浏览器,打赌我“点击” fileInput按钮时不会调用内部函数:
var importOption = new UI.Panel();
importOption.setClass('option');
importOption.setTextContent('Import');
importOption.onClick(function () {
fileInput.click();
} );
options.add(importOption);
关于如何触发“更改”功能的任何想法? 我希望它由用户按下按钮来触发,就像它写在代码中一样。
这段代码取自three.js源文件,在chrome上可以正常工作。
提前致谢。
将click事件绑定到以这种方式创建的html元素时,我遇到了类似的问题。 它在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();
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.