访问动态加载的JavaScript函数

时间:2019-03-18 06:32:54

标签: javascript reactjs gatsby

我正在尝试将动态加载的自定义javascript访问到onSubmit事件处理程序中。

所以基本上代码是这样的

onSubmitHandler() {
    var script1 = document.createElement("script");
    var script2 = document.createElement("script");

    script1.type = "text/javascript";
    script1.src = "file1.js";
    document.getElementsByTagName('head')[0].appendChild(script1)

    script1.onload = function () {
        script2.type = "text/javascript";
        script2.src = "file2.js";
        document.getElementsByTagName('head')[0].appendChild(script2);
    }

    script2.onload = function () {
        secondScriptFn() // This function is inside script2
    }
}

现在,问题是,当我尝试创建处理程序时,它会自动指出未定义secondScriptFn

enter image description here

我的目标是仅在加载secondScriptFn()时触发file2.js

有什么想法吗? 我做错了吗?

注意:我正在Gatsby Framework上进行开发,因为我试图将JS脚本移植到React中,导致直接加载脚本不起作用。

谢谢大家! :)

1 个答案:

答案 0 :(得分:1)

只要不理你的小子。该代码将按预期运行。

还可以写一些短毛猫(只是句法糖):

 window["secondScriptFn"]()