cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Isu keserasian IE yang dihasilkan secara dinamik tidak boleh dicetuskan oleh pelayar IE.

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();
}
为情所困为情所困2765 hari yang lalu882

membalas semua(4)saya akan balas

  • 为情所困

    为情所困2017-06-26 10:58:54

    Tambahkan ayat berikut sebelum

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

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

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

    balas
    0
  • 学习ing

    学习ing2017-06-26 10:58:54

    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.

    balas
    0
  • 習慣沉默

    習慣沉默2017-06-26 10:58:54

    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

    balas
    0
  • 大家讲道理

    大家讲道理2017-06-26 10:58:54

    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");
    });
    

    balas
    0
  • Batalbalas