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(); }
Ajoutez la phrase suivante avant
ie
下click()
不能操作文档中没有的节点,所以你可以在click()
Pour être compatible
ie9
之前用attachEvent
而不是addEventListener
。还有
ie9
之前不兼容getElementsByClassName
Pourquoi
button
使用了.onclick
,后面的input
却用了.addEventListener
?L'Internet Explorer traditionnel et sa méthode attachEvent sont expliqués dans la documentation 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