【发布时间】:2023-03-08 22:56:01
【问题描述】:
我想在页面加载时在页面的<div> 元素中打印一条消息。我有以下 HTML 和 JavaScript 代码:
<body onload="printMsg()">
<div id="write"></div>
</body>
function printMsg() {
var node = document.getElementById("write");
node.innerHTML = "<p>" + "Hello World!" + "</p>";
}
这里我使用<body> 元素中的onload 事件在页面加载时调用printMsg()。
但是如果我不使用onload 事件,有没有其他方法可以直接在JavaScript 函数printMsg() 中写入<div id="write"></div>?
【问题讨论】:
-
在加载之前不能写入 DOM 元素,因此您需要某种与
onload等效的回调。如果你想避免它,你应该能够确保script标签出现在 DOM 元素之后,我建议在body结束之前。您正在写入函数中的div...您不能在其声明中调用函数,但您可以在function() {..}();之后立即执行此操作。因此,请尝试将printMsg向下移动并在右大括号后添加();。 -
谢谢马特。看来我不能把 来调用函数 printMsg()。那么除了其他人指出的方法之外,有没有办法通过向元素添加回调来调用 printMsg() 函数?
标签: javascript html