Javascript添加到头但无法使用它

时间:2013-09-19 08:11:44

标签: javascript

我有一个切换开关,当我按下它时会在页面的头部添加一个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. 按下脚本按钮时加载的脚本(这是函数所在的位置。

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

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