Rumah > Soal Jawab > teks badan
1. Perkenalkan a.js dan b.js pada halaman A; tiada masalah dengan kedua-dua a.js dan b.js menggunakan window.onload
Tetapi saya juga memperkenalkan a.js dan c.js pada halaman B, dan kadangkala .js seolah-olah ia tidak dilaksanakan sama sekali
Tetapi saya terus meletakkan kandungan window.onload dalam a.js ke dalam onload c.js dalam halaman B, dan ia dilaksanakan dengan betul apa yang sedang berlaku? ?
phpcn_u15822017-06-26 10:57:06
window.onload hanya digunakan sekali, jadi akan berlaku konflik apabila berbilang js menggunakannya pada masa yang sama.
Penyelesaian
1.用jQuery使用ready()方法替换onload
2.在window.onload中一次加载所有js文件,例:window.onload=function(){function(a);function(b);}
黄舟2017-06-26 10:57:06
Saya mencubanya Tetingkap boleh diikat beberapa kali, tetapi ia hanya akan berkuat kuasa pada kali terakhir Anda boleh membandingkan dua contoh saya di bawah untuk memahami situasi anda.
//方式1:
window.onload=function () {
console.log("1");
}
window.onload=function () {
console.log("2");
}
// 输出2
// -------------------------------分割线
// 方式2:
function fn1() {
console.log("1");
}
function fn2() {
console.log("2");
}
addEventLoad(fn1);
addEventLoad(fn2);
//输出1 2
function addEventLoad(fn){
var oldFn = window.onload;
if(typeof window.onload != 'function'){
window.onload = fn;
}else{
window.onload = function(){
oldFn();
fn();
}
}
}
大家讲道理2017-06-26 10:57:06
Lulus window.onload = function() { ... }
方法设置的事件,后面的window.onload
值会覆盖掉前面的,所以,只有最后一次生效。(这个和调用a = 1; a = 2; a =3;
adalah kebenaran)
Jika perlu window
的onload
事件进行多次绑定,建议使用addEventListener
:
window.addEventListener('load', function() { ... }, false);
Nota, gunakan attachEvent
而非addEventListener
dalam ID:
window.attachEvent('onload', function() { ... });
Juga ambil perhatian, addEventListener
中用的是'load'
,而attachEvent
中用的是'onload'
.
世界只因有你2017-06-26 10:57:06
Kaedah window.onload() hanya boleh diikat sekali Jika anda mengikat beberapa kali, hanya yang terakhir akan berkuat kuasa
代言2017-06-26 10:57:06
window.onload hanya akan memanggil yang terakhir, dan yang sebelumnya akan ditimpa.