我有一个简单的JS函数,可将文本行加载到无序列表中。

Java脚本

function loadText() {
    document.getElementById("text1").innerHTML = "Text1";
    document.getElementById("text2").innerHTML = "Text2";
    document.getElementById("text3").innerHTML = "Text3";
}
window.onload = loadText;

的HTML
<ul id="textlist">
        <li id="text1"></li>
        <li id="text2"></li>
        <li id="text3"></li>
</ul>

这实际上在浏览器(Chrome)中有效,但是当我使用window.onload = loadText();而不是window.onload = loadText;时。我收到错误消息:



我以为是因为未读取DOM,所以我尝试了ondomready,但在那里遇到了同样的问题。但是,将window.onload = loadText();改回window.onload = loadText;仍然可以工作。

我觉得这很奇怪,这会有所不同。我在这里想念什么吗?

最佳答案

window.onload = loadText;告诉浏览器在加载文档时执行loadText。这意味着document.getElementById将在loadText中可用(并正常工作)。
window.onload = loadText();立即执行loadText,并将返回值(undefined)分配给window.onload。因此,该分配是无用的,该功能将无法使用。

您在这里想要window.onload = loadText,我不知道您为什么还要尝试window.onload = loadText();

关于javascript - 在JavaScript中调用函数loadText与loadText()有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25138092/

10-09 23:58