不使用<body>标记设置body onload

Mic*_*ell 2 javascript onload

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

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

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

编辑:

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

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

如果我这样做:

alert(buttonElements)

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

Poi*_*nty 5

你得到的东西几乎可以工作,但你必须在<body>标签的末尾导入你的JavaScript ,你必须索引第一个结果:

document.getElementsByTagName('body')[0].onload = someFunc;
Run Code Online (Sandbox Code Playgroud)


Sar*_*raz 5

像这样:

window.onload = someFunc;
Run Code Online (Sandbox Code Playgroud)

但是,如果您的函数接受争辩,则需要这样的匿名函数:

window.onload = function(){
    someFunc(arg1, arg2);
}
Run Code Online (Sandbox Code Playgroud)

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

document.body.onload = someFunc;
Run Code Online (Sandbox Code Playgroud)