使用 document.createElement("script") 同步执行 JavaScript 模块
对 JavaScript 文件的调用通常是异步的,这意味着后续代码执行可能会在加载和评估外部脚本之前发生。在使用外部脚本中定义的函数或变量时,这可能会带来挑战。
同步执行的一种方法是对创建的脚本元素使用 onload 处理程序。处理脚本后,此处理程序将调用所需的函数或代码。
<code class="javascript">const script = document.createElement('script'); script.onload = () => { // Script loaded and ready console.log("Script loaded and ready"); }; script.src = "http://whatever.com/the/script.js"; document.getElementsByTagName('head')[0].appendChild(script);</code>
但是,Internet Explorer 不会触发脚本标记的“加载”事件,因此需要其他同步方法。示例包括执行 XMLHttpRequest 来检索脚本并手动执行它,或者将脚本文本插入动态创建的脚本标记中。
为了改进脚本管理和处理特殊情况,建议考虑强大的脚本加载工具,例如如 RequireJS 或 yepnope,现已与 Modernizr 集成。
以上是如何在浏览器中同步执行JavaScript模块?的详细内容。更多信息请关注PHP中文网其他相关文章!