3

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

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

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

编辑:

我已经尝试了答案,似乎问题在于它在加载它在正文标记中使用的元素之前调用了该函数,即使我将脚本标签放在正文中也是如此。这是它需要做的:

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

如果我这样做:

alert(buttonElements)

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

4

4 回答 4

5

你所拥有的几乎可以工作,但是你必须在<body>标签的末尾导入你的 JavaScript,并且你必须索引第一个结果:

document.getElementsByTagName('body')[0].onload = someFunc;
于 2012-12-27T18:42:08.287 回答
5

像这样:

window.onload = someFunc;

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

window.onload = function(){
    someFunc(arg1, arg2);
}

顺便说一句,除了修复@Pointy 为您的代码提到的问题之外,您还可以执行以下操作:

document.body.onload = someFunc;
于 2012-12-27T18:42:08.090 回答
2

不要使用引号..."someFunc"()如果您尝试运行它,它将不起作用。

window.onload = someFunc;
于 2012-12-27T18:42:37.653 回答
2

如果你使用 jQuery:

$(document).ready(function () {
    callMyFunction();
});
于 2012-12-27T18:45:43.583 回答