-1

我有一个切换开关,当我按下它时,它会在页面头部添加一个 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 调试它时,我可以看到所有脚本,但是如果我尝试调用该脚本的函数,它会告诉我我试图调用的函数是未定义的。

所以看起来脚本没有正确加载。

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

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

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

更新

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

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

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

在脚本一中,我试图在脚本 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]);
        }
    }
};
4

2 回答 2

3

试试这个代码

        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);
于 2013-09-19T08:27:34.157 回答
1

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

var newJS = document.createElement('script');
newJS.setAttribute('type','text/javascript');
newJS.setAttribute('src', 'dev/additional_script.js');
于 2013-09-19T08:17:10.517 回答