我想在加载页面时运行一个函数,但我不想在<body>标记中使用它。
我有一个脚本,如果我在<body>中初始化它,就会运行,像这样:
function codeAddress() {
// code
}
<body onLoad="codeAddress()">
但我想运行它没有<body onload="codeAddress()“>和我尝试了很多东西,例如:
window.onload = codeAddress;
但这并不奏效。
那么,当页面加载时,我如何运行它呢?
窗口。onload = codeAddress;应该工作-这里是一个演示,和完整的代码:
<!DOCTYPE html >
< html >
< >头
<标题>测试< /名称>
<meta http-equiv=" content - type " content="text/html;utf - 8字符集= " / >
< script type = " text / javascript " >
函数codeAddress() {
alert('好的');
}
窗口。onload = codeAddress;
> < /脚本
> < /头
身体< >
身体< / >
< / html >
<!DOCTYPE html >
< html >
< >头
<标题>测试< /名称>
<meta http-equiv=" content - type " content="text/html;utf - 8字符集= " / >
< script type = " text / javascript " >
函数codeAddress() {
alert('好的');
}
> < /脚本
> < /头
<身体onload = " codeAddress ();" >
身体< / >
< / html >
窗口。Onload = function(){…等等不是一个很好的答案。
这可能会起作用,但它也会破坏已经与该事件挂钩的任何其他函数。或者,如果另一个函数在你的事件之后钩子到那个事件,它会破坏你的事件。
所以,你可以花很多时间之后试图弄清楚为什么一些东西不再有效了。
这里有一个更有力的答案:
if(window.attachEvent) {
window.attachEvent('onload', yourFunctionName);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
yourFunctionName(evt);
};
window.onload = newonload;
} else {
window.onload = yourFunctionName;
}
}
我一直在使用的一些代码,我忘记了我在哪里找到它给作者的信用。
function my_function() {
// whatever code I want to run after page load
}
if (window.attachEvent) {window.attachEvent('onload', my_function);}
else if (window.addEventListener) {window.addEventListener('load', my_function, false);}
else {document.addEventListener('load', my_function, false);}
希望这对你有所帮助。