Javascript添加到head,但无法使用它

Javascript added to head but unable to use it

本文关键字:添加 head Javascript      更新时间:2023-09-26

我有一个切换开关,当我按下它时,它会在页面的头部添加一个Javascript:

    function yourcallback (){
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'dev/additional_script.js';
head.appendChild(script);
} 

现在,当我使用 firebug 调试它时,我可以看到所有脚本,但是如果我尝试对该脚本调用函数,它会告诉我我尝试调用的函数未定义。

因此,脚本似乎未正确加载。

但是,如果我在火虫中尝试调用相同的函数,它会返回function()这意味着应该定义它。

有没有人经历过这样的事情和/或知道如何解决它。

如果您需要更多代码信息,请告诉我,并将其添加到我的问题中

更新

好的,这是我有两个脚本的事情:

  1. 控制开关按钮的脚本(当用户按下它时,将加载另一个脚本)

  2. 按下脚本按钮时加载的脚本(这是函数所在的位置。

在脚本 1 中,我尝试在加载脚本 2 后调用函数,这就是我收到错误的地方:

我调用函数的方式只是使用函数名称

我尝试访问的功能如下所示:

    var init = function() {
    var i, anchors, scriptTag;
    //get the uid...
    scriptTag = document.getElementById("link-replacer");
    if(scriptTag) {
        uid = scriptTag.getAttribute("data-uid");
    } else {
        uid = "none";
    }
    urlpart = forwardUrl+"?uid="+uid+"&url=";
    if(doOnLoadReplace) {
        anchors = document.getElementsByTagName("a");
        for(i = 0; i < anchors.length; ++i) {
            fixHref(anchors[i]);
        }
    }
};

试试这段代码

        var myScript = document.createElement('script');
        myScript.setAttribute('type', 'text/javascript');
        myScript.setAttribute('src', 'dev/additional_script.js');
        var headFirst = document.getElementsByTagName('head');
        headFirst[0].appendChild(myScript);

我认为您错误地添加了脚本。试试这个:

var newJS = document.createElement('script');
newJS.setAttribute('type','text/javascript');
newJS.setAttribute('src', 'dev/additional_script.js');