javascript - 单击事件在 IE11 中未触发

标签 javascript onclick filepicker

我有这个js文件:

function fireClick(node){
    if ( document.createEvent ) {
        var evt = document.createEvent('MouseEvents');
        evt.initEvent('click', true, false);
        node.dispatchEvent(evt);
    } else if( document.createEventObject ) {
        node.fireEvent('onclick') ;
    } else if (typeof node.onclick == 'function' ) {
        node.onclick();
    }
}

function selectAvatar()
{

    var fileSelector = document.createElement('input');
    fileSelector.setAttribute('type', 'file');
    fileSelector.setAttribute('accept', "image/gif, image/jpeg");



    fileSelector.onchange = function(event) {
        var fileList = fileSelector.files;
        //alert(fileList.length);
        if (fileList.length==0) return;
        reader.readAsDataURL(fileList[0]);
    }
    var reader = new FileReader();

    reader.onload = function(e) {
        var dataURL = reader.result;
        //alert(dataURL);
        var container = document.getElementById("avatart-container-div");
        var backgroundIMgString = 'url("'+dataURL+'")';
        container.style.backgroundImage=backgroundIMgString;
    }
    fireClick(fileSelector);
}

它应该以编程方式打开文件选择器来选择图像。虽然这适用于 FF 和 chrome,但不适用于 IE(11 是我的版本)。选择器本身不会出现。尝试逐行调试,但一切似乎都很好(没有错误或异常)。有人知道可能是什么问题吗?

最佳答案

摘自评论:

您实际上只是创建了元素,没有将其添加到 DOM 中。您可以使用以下命令将其添加到 DOM: document.body.appendChild(fileSelector);

在 selectAvatar 函数中:

function selectAvatar()
{

    var fileSelector = document.createElement('input');
    fileSelector.setAttribute('type', 'file');
    fileSelector.setAttribute('accept', "image/gif, image/jpeg");

    document.body.appendChild(fileSelector);

    // do stuff
}

还有здрасти

关于javascript - 单击事件在 IE11 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953662/

相关文章:

html - 应该 &'s be escaped in onclick="...”?

javascript - 如何在 onclick 按钮属性中写入函数

ios - 在 ionic 3 中使用 FilePicker-Phonegap-iOS-Plugin 进行 ionic 服务时出现类型错误

Flutter file_picker 插件无法构建项目

javascript - 在node.js中解析JSON并在jade中显示

javascript - 当任何可移动对象离开屏幕时,网页尺寸会增加

java - 如何在 Android 中使用按钮单击以编程方式切换选项卡

javascript - 我如何让 filepicker.js 只允许上传图片和 pdf

javascript - jQuery:在 serializeArray 中推送值数组

javascript - 如何在不使用 'div' 条件的情况下将数组值拆分并添加到不同的 "if"组件中?