gpt4 book ai didi

带或不带括号的 javascript window.onload 事件处理程序

转载 作者:行者123 更新时间:2023-12-03 12:07:58 25 4
gpt4 key购买 nike

通过加载以下简单的 javascript 和 html,我得到了著名的

Uncaught TypeError: Cannot read property 'value' of null

在 window.onload 事件期间,当且仅当我在事件处理程序分配中包含括号(如图所示)时。如果我将该行更改为读取

window.onload = verifyAdd;

(无括号)我在 chrome/firefox 调试面板中没有收到错误。到底为什么?功能上有区别吗?

Javascript:

window.onload = verifyAdd();
function verifyAdd() {
var first;

first = document.getElementById("txtFirstName").value;
}

HTML:

<html>
<head>
<script type="text/javascript" src="./frobozz.js"></script>
</head>
<body>
<input type=text id=txtFirstName name=txtFirstName size=30 onchange=verifyAdd() />
</body>
</html>

最佳答案

通过这样做:

window.onload = verifyAdd();

您正在分配 verifyAdd() 的执行结果,该结果是未定义

通过做

window.onload = verifyAdd;

您只是存储函数verifyAdd以便稍后执行。

该错误是由于 verifyAdd 的正文引起的:

 first = document.getElementById("txtFirstName").value;

您不会等到文档加载(因为您正在立即执行该函数),因此变量 document 为 null。然后您将处理空引用,因此会出现错误消息。

关于带或不带括号的 javascript window.onload 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25099709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com