Maison > Questions et réponses > le corps du texte
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();
}
为情所困2017-06-26 10:58:54
Ajoutez la phrase suivante avant
ie
下click()
不能操作文档中没有的节点,所以你可以在click()
document.body.appendChild( input );
input.style.display = 'none';
input.click();
Pour être compatibleie9
之前用attachEvent
而不是addEventListener
。
还有ie9
之前不兼容getElementsByClassName
学习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.
習慣沉默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
.大家讲道理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");
});