1

私はこの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 です)。ピッカー自体は表示されません。行ごとにデバッグを試みましたが、すべて問題ないようです (エラーや例外はありません)。何が問題なのか考えている人はいますか?

4

1 に答える 1

0

コメントから取得:

実際には、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
}

また、次の

于 2014-07-25T10:51:23.133 に答える