我想在加载页面时运行一个函数,但我不想在<body>标记中使用它。

我有一个脚本,如果我在<body>中初始化它,就会运行,像这样:

function codeAddress() {
  // code
}
<body onLoad="codeAddress()">

但我想运行它没有<body onload="codeAddress()“>和我尝试了很多东西,例如:

window.onload = codeAddress;

但这并不奏效。

那么,当页面加载时,我如何运行它呢?


当前回答

窗口。Onload将像这样工作:

函数codeAddress() { . getelementbyid(“测试”).innerHTML =日期(); } 窗口。onload = codeAddress; <!DOCTYPE html > < html > < >头 <title>learning Java script</title> . < script src = " custom.js " > < /脚本> > < /头 身体< > < p id = "测试" > < / p > <李> abcd李< / > 身体< / > < / html >

其他回答

窗口。Onload将像这样工作:

函数codeAddress() { . getelementbyid(“测试”).innerHTML =日期(); } 窗口。onload = codeAddress; <!DOCTYPE html > < html > < >头 <title>learning Java script</title> . < script src = " custom.js " > < /脚本> > < /头 身体< > < p id = "测试" > < / p > <李> abcd李< / > 身体< / > < / html >

窗口。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 >

采用Darin的答案,但jQuery风格。(我知道用户要求javascript)。

运行的小提琴

$(document).ready ( function(){
   alert('ok');
});​

我相信这是维护跨不同版本浏览器支持的最佳方法

if (window.addEventListener) {
   window.addEventListener("load", myFunction, false);
}
else if (window.attachEvent) {
   window.attachEvent("onload", myFunction);
}
else {
   window.onload = myFunction; //will override previously attached event listeners.
}

替代解决方案。我更喜欢这种方式,因为它简洁,代码简单。

(function () {
    alert("I am here");
})();

这是一个匿名函数,没有指定名称。 这里所发生的是,函数被定义并一起执行。 将它添加到正文的开头或结尾,这取决于它是在加载页面之前执行还是在加载所有HTML元素之后执行。