我一直在努力为我的问题找到解决方案。我不是一个有javascript经验的人,但我正在寻找一种方法来轻微改变外部js url,具体取决于ahref上的onclick事件。
现在我的脑袋中有这个标签:
<script type="text/javascript" src="http://www.domain.com/loader.php?GID=126&go=&sid="></script>
我希望根据锚标记上的onclick将SID参数设置为1或2。使用这段代码调用加载器,但是在调用加载器之前,SID必须在右侧更改。
<a href="/#download" onclick="javascript:Load_126(); return false;">
有没有人可以告诉我是否可能?也许我指向正确的方向?
此致
Sedoc94
编辑1 :我一直指向一个方向,并认为我可以用jQuery.getScript()
完成这项工作但仍然不知道我应该如何利用它来处理我的情况。
编辑2 :由于脚本需要从外部域中提取,我必须使用$ .ajax()函数。
现在我有:
function loadGame(sid){
$.ajax({
url: 'http://www.domain.com/loader.php?GID=126&go=&sid='+sid,
dataType: "script",
crossDomain: true,
success: gLoad_12603()
});
}
使用ahref onclick我正在调用loadGame函数,但控制台说:Uncaught ReferenceError: gLoad_12603 is not defined
。它应该工作。但我猜它以某种方式给出了这个错误,因为该函数只存在于从外部URL返回的脚本代码中。
我有什么想法可以让它发挥作用吗?
答案 0 :(得分:2)
您需要提供将在AJAX请求完成时执行的成功回调。现在,您实际上是在使用parathesis gliad_12603()并在启动AJAX请求之前执行该函数。您不能只删除该parathesis,因为jQuery可能会在实际启动AJAX请求之前尝试获取对gLoad_12603函数的引用。所以你必须在函数中包含对gLoad_12603()的调用,以确保一切正常:
function loadGame(sid){
$.ajax({
url: 'http://www.domain.com/loader.php?GID=126&go=&sid='+sid,
dataType: "script",
crossDomain: true,
success: function() {
gLoad_12603();
}
});
}
答案 1 :(得分:1)
function loadScript(sid) {
$.getScript("http://www.domain.com/loader.php?GID=126&go=&sid="+sid, function(script, textStatus, jqxhr) {
//code you want to be executed after the script is loaded inside the page
//you can delete this callback if you don't need it
});
}
并以这种方式使用它,更改每个锚点上的sid
以加载不同的脚本:
<a href="/#download" onclick="javascript:loadScript(126); return false;">
<a href="/#download" onclick="javascript:loadScript(127); return false;">
答案 2 :(得分:1)
尝试删除“success:gLoad_12603()”中的括号“()”。