首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >window.onload != <body onload="">

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

Stack Overflow用户
提问于 2009-10-28 05:59:58
回答 6查看 2.2K关注 0票数 2

我认为这相当有趣。考虑下面的代码,window.onload和body onload="“调用相同的函数。然而,结果是不同的。在我看来,window.onload在集合方面有问题。代码如下:

代码语言:javascript
复制
<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>

如您所见,两者都报告集合存在,而window.onload报告它没有成员。有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-28 06:05:47

您的函数设置错误:

代码语言:javascript
复制
window.onload = getSpanElements();

应该是

代码语言:javascript
复制
window.onload = getSpanElements;

此时您正在将onload处理程序设置为getSpanElements()的返回值。

票数 11
EN

Stack Overflow用户

发布于 2009-10-28 06:04:32

代码语言:javascript
复制
window.onload = getSpanElements();

应该是

代码语言:javascript
复制
window.onload = getSpanElements;

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

票数 10
EN

Stack Overflow用户

发布于 2009-10-28 06:06:23

你这样做是错误的:

代码语言:javascript
复制
window.onload = getSpanElements();

它将window.onload设置为对函数getSpanElements (未定义)的调用结果。

您应该改为这样做:

代码语言:javascript
复制
window.onload = getSpanElements;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1633912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档