Javascript Js头附加脚本

Javascript Js头附加脚本,javascript,html,Javascript,Html,在head元素之后以编程方式附加脚本标记时 head.appendChild(script_elm); 在上面这个脚本元素中,我定义了一个变量。如果我想访问脚本标记中定义的变量,那么在头追加之后它不会立即工作。为什么? 您需要等待脚本加载。as@Danielesandra评论 script_elem.onload = function() { // some code }; 看到这个问题了吗 确保通过脚本访问该变量。 例如,externalscript.js windo

在head元素之后以编程方式附加脚本标记时

head.appendChild(script_elm);

在上面这个脚本元素中,我定义了一个变量。如果我想访问脚本标记中定义的变量,那么在头追加之后它不会立即工作。为什么?

您需要等待脚本加载。as@Danielesandra评论

 script_elem.onload = function() {
      // some code
    };
看到这个问题了吗


确保通过脚本访问该变量。 例如,
externalscript.js

window.externalScript = function () {

    const yourVariable = //do some magic here;
    this.scriptVariable = yourVariable;
    // your code
}
然后可以在onload函数中使用此变量,如下所示:

script_elem.onload = () => {
    if (window.externalScript &&
        window.externalScript().scriptVariable) {
        //do whatever you want to do with your script variable.
    }
}

如果你正在加载一个外部JavaScript文件,你必须在访问变量之前等待它被完全加载。我个人永远不会“等待”一段脚本加载一个变量。我建议使用
ajax
调用来请求变量,或者使用
服务器端预处理器
(如PHP),或者简单地将脚本包含在
头中
并等待
DOMContentLoaded
事件。