gpt4 book ai didi

javascript - 浏览器如何以及何时对文档的 DOM 实现实时更改?

转载 作者:行者123 更新时间:2023-11-30 10:54:34 28 4
gpt4 key购买 nike

我的网站动态地将外部 Javascript 文件嵌入到 head 标记中。外部 Javascript 定义了一个全局变量 myString = "data"。网站中的 Javascript 何时可以访问 myString?

<html>
<head>
<script type="text/javascript">
myString = null;
external = document.createElement("script");
//externalScript.js is one line, containing the following:
//myString = "data";
external.setAttribute("src", "externalScript.js");
external.setAttribute("type", "text/javascript");
document.getElementsByTagName("head")[0].append(external);
alert(myString);
<script>
</head>
<body>
</body>
</html>

此代码在 Chrome 和 IE 中会提示 null(当我认为它会提示“数据”时),即使此时 DOM 已加载到 externalScript.js 中。浏览器何时实际评估 externalScript.js,我在什么时候可以访问 myString 的新值?

最佳答案

您可以在该脚本元素的 onload 事件触发时访问它,如下所示:

external = document.createElement("script");
external.onload = function() { alert(myString); };
script.onreadystatechange= function () { //for IE, the special kid...
if (this.readyState == 'complete') alert(myString);
}
external.setAttribute("src", "externalScript.js");
external.setAttribute("type", "text/javascript");
document.getElementsByTagName("head")[0].appendChild(external);

这只是附加了一个函数,以便在该脚本加载后运行,执行依赖于其中脚本的任何代码。对先前答案的更正:如 seanmonstar在评论中指出(谢谢!),你确实再次需要一个 IE 异常,因为它有点“特殊”......

关于javascript - 浏览器如何以及何时对文档的 DOM 实现实时更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2937053/

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