带有onLoad事件的外部JS

时间:2013-07-01 09:51:37

标签: onload external-js

我有一个外部js文件,它有一个在文档正文加载后运行的函数。这是我到目前为止所做的,但它不能正常工作。请帮忙。

外部JS文件

window.document.body.addEventListener('load', numOfSelects());

function numOfSelects()
{
  var selects = document.getElementsByTagName('select');
  alert(selects.length);
}

调用此脚本的HTML文件确实有一些选择字段。警报有效,但显示为0.警报显示后,可以看到正文已加载。显然这不是我想要的。我究竟做错了什么?谢谢你们。

我也试过这个:

仍然无法正常工作。这是我的代码:

父文件

<html>
<head>
<title>File 1</title>
<script src='file1.js'></script>
</head>

<body>

<select id='dd1'><option>First</option><option>Second</option></select>
<select id='dd2'><option>First</option><option>Second</option></select>

</body>
</html>

JS FILE

alert('start');
window.document.body.addEventListener('load', function(){alert(document.getElementsByTagName('select').length)}); 
alert('stop');

仅显示第一个提醒。我觉得我在某个地方犯了一个非常愚蠢的错误。

4 个答案:

答案 0 :(得分:6)

你只想要

window.addEventListener('load',numOfSelects);

答案 1 :(得分:2)

你想要

window.document.body.addEventListener('load', numOfSelects);

通过包括括号,你实际上是在调用函数并将它的返回值(没有任何内容)作为“addEventListener”的第二个参数传递,而不是引用函数

答案 2 :(得分:1)

试试这个:

window.onload = function ()
{
numOfSelects();
};

答案 3 :(得分:0)

在这种情况下,答案已经给出

window.addEventListener('load', numOfSelects);

另一个用例可能需要在函数中传递参数

window.addEventListener('load', function(){
numOfSelects(param)
});