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.
为情所困
为情所困 2017-06-26 10:56:54
0
4
858

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

répondre à tous(4)
为情所困

Ajoutez la phrase suivante avant

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

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

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

学习ing

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.

習慣沉默

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

.
大家讲道理

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");
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal