如何改变外部脚本url点击
How to change external script url onclick?
我一直在努力为我的问题找到解决方案。我不是一个经验丰富的人与javascript,但我正在寻找一种方法来略微改变外部js url取决于在ahref上的onclick事件。
现在我在我的head标签中有这个:
<script type="text/javascript" src="http://www.domain.com/loader.php?GID=126&go=&sid="></script>
我希望SID参数根据锚标记上的onclick设置为1或2。加载器是用这段代码调用的,但是SID必须在调用加载器之前更改。 有没有人可以告诉我这是否可能?也许给我指个正确的方向?<a href="/#download" onclick="javascript:Load_126(); return false;">
问候,
Sedoc94
编辑1:我已经指出了一个方向,并认为我可以得到这个与jQuery.getScript()
完成,但仍然没有线索我应该如何利用它为我的情况。
EDIT 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返回的脚本代码中。
有什么好主意吗?
您需要提供一个成功回调,该回调将在AJAX请求完成时执行。现在,您实际上是在调用gLoad_12603(),并在AJAX请求启动之前执行该函数。您不能仅仅删除旁义,因为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();
}
});
}
jQuery.getScript()
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;">
尝试在"success: gLoad_12603()"中删除括号"()"
- 建议将包含不同参数的内联JS转换为外部脚本
- 加载Angular视图后加载外部脚本
- 如何获取外部脚本的内容
- 是否有用于加载外部脚本的JavaScript库
- Javascript:是否可以读取外部脚本的原始代码
- 不评估动态加载的外部脚本
- 外部脚本可以在Schematron规则中使用吗
- Kinetic JS无法从外部脚本文件中工作
- html javascript加载外部脚本
- 取消绑定由加载jQuery'的外部脚本添加的事件;s的getScript函数
- requirejs在头中加载外部脚本
- 加载外部脚本时,匿名定义()模块不匹配
- document.write(“anything”) 不会在 Internet Explorer 中作为外部脚本执行
- 在加载其他脚本之前,在 Jasmine 中加载外部脚本
- 在 JavaScript 中调用外部脚本
- Chrome扩展程序:加载并执行外部脚本
- 在所有浏览器上执行没有扩展名.js外部脚本重定向
- 外部脚本缓存
- 通过添加/删除指向外部脚本的链接,以编程方式更新页面的源代码
- 如何防止外部脚本覆盖我的主.js配置