我有一个切换开关,当我按下它时会在页面的头部添加一个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()
意思是它应该被定义。
有没有人经历过这样的事情和/或知道如何解决它。
如果您需要更多代码信息,请告诉我,并将其添加到我的问题
更新
好的,这就是我有两个脚本的东西:
控制切换按钮的脚本(当用户按下它时会加载另一个脚本)
按下脚本按钮时加载的脚本(这是函数所在的位置。
在脚本一中,我试图在脚本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]);
}
}
};
答案 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');