gpt4 book ai didi

一个文件中的 Javascript 窗口加载和依赖函数及其在另一个文件中的调用 : order of execution

转载 作者:行者123 更新时间:2023-11-30 11:07:51 24 4
gpt4 key购买 nike

我有两个 Javascript 文件:

drawField.jsupdateState.js

drawField.js 有这个调用:

window.onload = function()  {
drawField(10);
}

它创建了一个元素 <div id="game-field"> .

updateState.js 文件中我使用了那个元素:

function getGameField()  {
var gameDivs = document.getElementById("game-field").children;
console.log(gameDivs);


}
getGameField();

但是出现错误:元素null 没有子元素.

如果我将 getGameField()内拨window.onload ,它工作得很好。这让我相信对函数的调用在 div 之前执行。被 build 。为什么会这样?首先,不是 onload功能应该是页面加载后要做的第一件事吗?其次,我将第一个和第二个文件像这样导入到我的页面中:

<script src="${pageContext.request.contextPath}/js/drawField.js"></script>
<script src="${pageContext.request.contextPath}/js/updateState.js"></script>
</body>
</html>

这让我相信 drawField.js 中的代码将在 updateState.js 中的代码之前执行,但似乎并非如此。

如果不放置 getGameField(),我该如何解决这个问题?内拨window.onload

最佳答案

First, isn't the onload function supposed to be the first thing done once a page is loaded?

页面的 onload 事件在加载 后触发。从技术上讲,当页面的所有 javascript 文件在浏览器中加载执行时,页面就被认为已加载。所以当 updateState.js 文件被执行时,函数 getGameField 也被执行,当它搜索元素时,它找不到它,因为它还没有被创建。

How would I fix this problem, without placing getGameField() call inside window.onload?

如果 window.onload Not Acceptable ,我建议将 getGameField 放在回调中。

关于一个文件中的 Javascript 窗口加载和依赖函数及其在另一个文件中的调用 : order of execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54950198/

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