javascript - Isu keserasian IE yang dihasilkan secara dinamik tidak boleh dicetuskan oleh pelayar IE.
为情所困
为情所困 2017-06-26 10:56:54
0
4
855

Kod ini sangat mudah, ia adalah untuk menjana teg input secara dinamik untuk menyedari bahawa peristiwa perubahan tidak dapat mengendalikan fail yang sama. Ia berfungsi dalam Chrome dan Firefox, tetapi pencetakan tidak boleh dicetuskan dalam pelayar IE 3. Bantuan! ! !

var button=document.getElementsByClassName('button')[0];
var imgBox=document.getElementsByClassName('imgBox')[0];
button.onclick=function(){
    inputImg();
}

function inputImg(){
    var input=document.createElement('input');
    input.type='file';
    input.addEventListener('change',function(e){
        console.log(3);
    });
    
    input.click();
}
为情所困
为情所困

membalas semua(4)
为情所困

Tambahkan ayat berikut sebelum

ieclick()不能操作文档中没有的节点,所以你可以在click()

document.body.appendChild( input );
input.style.display = 'none';
input.click();

Untuk serasiie9之前用attachEvent而不是addEventListener
还有ie9之前不兼容getElementsByClassName

学习ing

Kenapa button 使用了 .onclick,后面的 input 却用了 .addEventListener?

Internet Explorer tradisional dan kaedah attachEventnya dijelaskan dalam dokumentasi addEventListener:

Untuk Internet Explorer, sebelum IE 9, anda perlu menggunakan attachEvent dan bukannya menggunakan kaedah standard
addEventListener.

習慣沉默

IE8 dan ke bawah tidak mempunyai kaedah addEventListener Anda boleh menggunakan kaedah attachEvent() untuk mendengar acara Sila ambil perhatian bahawa ini dalam panggilan balik attachEvent menghala ke tetingkap

大家讲道理

Gunakan yang berikut untuk mengikat acara

var addEvent = function(elem, type, handler){
    if(window.addEventListener){
        addEvent = function(elem, type, handler){
            elem.addEventListener(type, handler, false);
        };
    }else if(window.attachEvent){
        addEvent = function(elem, type, handler){
            elem.attachEvent('on' + type, handler);
        };
    }

    addEvent(elem, type, handler);
};

addEvent(input, "change", function(e){
    alert("changed");
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan