我有一个外部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');
仅显示第一个提醒。我觉得我在某个地方犯了一个非常愚蠢的错误。
答案 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)
});