window.onload!= <body onload ="">

And*_*nic 2 javascript collections onload

我认为这很有趣.考虑以下代码,window.onload和body onload =""都调用相同的函数.但是,结果不同.在我看来,window.onload存在集合问题.这是代码:

<html>
<script type="text/javascript">

    window.onload = getSpanElements();

    function getSpanElements(){
        var collectionBoolean = document.getElementsByTagName("span")?true:false;
        alert(
            "collection exists? " + collectionBoolean + "; number of collection members: " + document.getElementsByTagName("span").length
        );
    }


</script>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
</head>
<body onload="getSpanElements()">
    <span> test </span>
</body>
Run Code Online (Sandbox Code Playgroud)

如您所见,两者都报告集合存在,但window.onload报告它没有成员.有任何想法吗?

Gre*_*reg 11

您正在设置错误的功能:

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

应该

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

您现在将onload处理程序设置为getSpanElements()的返回值.


Que*_*tin 10

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

应该

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

调用getSpanElements函数的代码并将其返回值指定为onload事件处理程序.