在不使用标签的情况下设置body onload

时间:2012-12-27 18:41:02

标签: javascript onload

我正试图在身体加载时触发一个功能。我知道你可以从body标签做到这一点,但如果可能的话,我更愿意从JS那里做到这一点。

例如:document.getElementsByTagName('body').onload = someFunc();

这对我不起作用,但我认为它显示了我本来想要做的事情。

修改

我已经尝试了答案,似乎问题是它在加载body标签中使用的元素之前调用函数,即使我将脚本标记放在体内。 这就是它需要做的事情:

var buttonElements = document.getElementsByClassName('button');

如果我这样做:

alert(buttonElements)

它会弹出0,但是当我在控制台中创建一个变量时,它会成功地用元素填充它。

4 个答案:

答案 0 :(得分:5)

您所拥有的内容几乎可以使用,但您必须在<body>标记的末尾导入JavaScript,并且必须为第一个结果编制索引:

document.getElementsByTagName('body')[0].onload = someFunc;

答案 1 :(得分:5)

像这样:

window.onload = someFunc;

但是,如果你的函数接受了arguemnts,你需要这样的匿名函数:

window.onload = function(){
    someFunc(arg1, arg2);
}
除了解决@Pointy提到的代码问题之外,你还可以这样做:

document.body.onload = someFunc;

答案 2 :(得分:1)

如果您尝试运行它,请勿使用引号... "someFunc"()将无效。

window.onload = someFunc;

答案 3 :(得分:1)

如果你使用jQuery:

$(document).ready(function () {
    callMyFunction();
});