使用window.onload超过1次
Using window.onload more than 1 times
如果我写这个
$(document).ready( function () {
alert("bla1");
});
$(document).ready( function () {
alert("bla2");
});
一切正常,出现两次警报,但如果代码为
window.onload = function () {
alert("bla1");
}
window.onload = function () {
alert("bla2");
}
第二个警报没有发生,请告诉某人,为什么2个或多个窗口。onload是错误的?
你给它分配一些东西,然后给它分配其他东西,并覆盖之前的内容。
foo = 1;
foo = 2;
// foo is now "2" it is not "1" and "2"
如果要以非破坏性方式分配事件处理程序,请使用addEventListener
。您需要使用兼容性方法来支持Old-IE。这些方法是通过on
方法内置到jQuery中的。
类似
var test;
test = 10;
test = 20
alert(test); // 20
覆盖它和jQuery处理加载事件的方式不同。
如果想要实现所需的行为,则必须使用函数addEventListener。
window.addEventListener("load",function () {
alert("bla1");
}, false);
window.addEventListener("load",function () {
alert("bla2");
}, false);
试试这样的
function doOnLoad() {
alert("hi");
alert("bye");
}
window.onload = doOnLoad;
Robert Hahn在他的博客上有一个很好的解决方案。
function makeDoubleDelegate(function1, function2) {
return function() {
if (function1)
function1();
if (function2)
function2();
}
}
window.onload = makeDoubleDelegate(window.onload, myNewFunction );
makeDoubleDelegate()函数将被放在第一个JS文件中,随时可以调用。它所做的是接受两个函数参数,检查它们是否存在,如果存在,则返回一个匿名包含有效的现有函数的函数。
第一次调用window.onload时,window.onlead本身为未定义,所以返回的是一个只有myNewFunction()内部。在随后的window.onload分配中,window.onload确实存在,所以它包含的所有内容都将被封装新功能。因此,名单越来越多。
我知道我的答案太晚了,但你可以试试这样的方法:
function hello() {
window.alert("hello");
}
function bye() {
window.alert("bye");
}
window.addEventListener("load", function() {
hello();
bye();
});
相关文章:
- 使用window.onload超过1次
- 为什么 for (null_object 中的 var i)进入循环体的次数超过零次
- 如何使用 PHP 或 JavaScript 请求超过 10000 次的 Steam API
- 单击链接并将隐藏字段中的文本插入输入字段超过 1 次,然后替换输入字段中的文本
- javascript不希望解析文本超过两次
- ng重复计数-筛选器更新次数不超过一次
- 在javascript中使用一个函数的时间不超过2秒内1次
- 是否有可能覆盖/阻止Javascript代码,以避免每小时超过一次点击
- Ajax/PHP值不会增加超过一次
- 阻止包含相同数字连续超过4次的电话号码的正则表达式
- 闪亮:删除行的次数不能超过1次
- allow的正则表达式-不超过2次
- 将mousemove事件限制为每秒触发不超过5次
- 如何防止用户在1小时内投票超过一次
- JT类不超过一次
- 为什么我的语音合成 API 语音在函数运行超过 1 次时发生变化
- 以小并发批方式运行承诺(一次不超过X个)
- HTML5历史API:不能倒退超过一次
- 选择不超过2次的标记事件
- Jquery不更新元素中的文本超过一次