recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème de compatibilité IE Les nœuds générés dynamiquement ne peuvent pas être déclenchés par le navigateur IE. Veuillez aider.

Le code est très simple, il s'agit de générer dynamiquement des balises d'entrée pour se rendre compte que l'événement change ne peut pas gérer le même fichier. Cela fonctionne sous Chrome et Firefox, mais l'impression ne peut pas être déclenchée dans le navigateur IE 3. Au secours ! ! !

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();
}
为情所困为情所困2750 Il y a quelques jours874

répondre à tous(4)je répondrai

  • 为情所困

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

    Ajoutez la phrase suivante avant

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

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

    Pour être compatibleie9之前用attachEvent而不是addEventListener
    还有ie9之前不兼容getElementsByClassName

    répondre
    0
  • 学习ing

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

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

    L'Internet Explorer traditionnel et sa méthode attachEvent sont expliqués dans la documentation addEventListener :

    Pour Internet Explorer, avant IE 9, vous deviez utiliser attachEvent au lieu d'utiliser la méthode standard
    addEventListener.

    répondre
    0
  • 習慣沉默

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

    IE8 et versions antérieures n'ont pas la méthode addEventListener. Vous pouvez utiliser la méthode attachEvent() pour écouter les événements. Veuillez noter que cela dans le rappel attachEvent pointe vers la fenêtre

    .

    répondre
    0
  • 大家讲道理

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

    Utilisez ce qui suit pour lier l'événement

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

    répondre
    0
  • Annulerrépondre