HTML元素在window.onload上抛出null。
根据研究,应该加载。
function setData()
{
document.getElementById("my").value = "set";
}
window.onload = setData();
答案 0 :(得分:1)
如果执行以下操作,函数setData()
将立即被调用,并且不等待窗口加载。下面的行执行右侧功能(setData()
),并将其自身指定为window.onload
侦听器。但是,我们目前不希望执行setData()
。相反,我们希望在窗口完全加载后执行setData()
。
window.onload = setData();
相反,请按以下方式使用window.onload
。这会将功能附加为window.onload
侦听器。窗口加载完成后,它将执行函数体,实际上是对setData()
的调用。
window.onload = function () {
setData();
}
运行代码:
<script>
function setData() {
document.getElementById("my").value = "set";
}
// document.addEventListener('readystatechange', event => {
// setData();
// });
window.onload = function () {
setData();
}
</script>
<textarea id="my"></textarea>
还有其他几种选择:
body
之后调用函数(在创建DOM元素后执行)readystatechange
侦听器(在文档准备就绪后执行)jQuery $(document).ready()
(在文档准备就绪后执行)这是另一个带有readystatechange
事件监听器的运行示例:
<script>
function setData() {
document.getElementById("my").value = "set";
}
document.addEventListener('readystatechange', event => {
setData();
});
</script>
<textarea id="my"></textarea>