Rumah > Soal Jawab > teks badan
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();
}
为情所困2017-06-26 10:58:54
Tambahkan ayat berikut sebelum
ie
下click()
不能操作文档中没有的节点,所以你可以在click()
document.body.appendChild( input );
input.style.display = 'none';
input.click();
Untuk serasiie9
之前用attachEvent
而不是addEventListener
。
还有ie9
之前不兼容getElementsByClassName
学习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.
習慣沉默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
大家讲道理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");
});