首页 > 解决方案 > 自调用函数会干扰 window.onload,除非

问题描述

我在自调用函数window.onload之前有一个函数。

window.onload = function(){
console.log(document.getElementById("one")); //returns null
}

(function selfExecuting(){
    console.log("hi")
}());

HTML 很简单:

<div id="one">hi</div>

当我尝试在 window.onload 函数中查找 DOM 元素时,它返回“ null”。除非我添加一行代码来存储未使用的变量。

window.onload = function(){
console.log(document.getElementById("one")); //now, this returns "<div id="one">hi</div>"
}

var unusedVar = "var"; // This unused variable makes the code work

(function selfExecuting(){
    console.log("hi")
}());

有人可以帮我理解为什么它会这样工作吗?这行未使用的代码在做什么?我感觉这与自调用函数的工作方式有关,但我不确定。

注意:我试图将其作为小提琴分享,但它导致控制台日志略有不同。如果这有所作为,我得到的控制台日志与 Chrome 一起使用。

标签: javascriptdomonloadself-invoking-function

解决方案


推荐阅读