我认为这相当有趣。考虑下面的代码,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>
如您所见,两者都报告集合存在,而window.onload报告它没有成员。有什么想法吗?
发布于 2009-10-28 06:05:47
您的函数设置错误:
window.onload = getSpanElements();应该是
window.onload = getSpanElements;此时您正在将onload处理程序设置为getSpanElements()的返回值。
发布于 2009-10-28 06:04:32
window.onload = getSpanElements();应该是
window.onload = getSpanElements;中的代码调用的getSpanElements函数,并将其返回值指定为onload事件处理程序。
发布于 2009-10-28 06:06:23
你这样做是错误的:
window.onload = getSpanElements();它将window.onload设置为对函数getSpanElements (未定义)的调用结果。
您应该改为这样做:
window.onload = getSpanElements;https://stackoverflow.com/questions/1633912
复制相似问题