如何改变外部脚本url点击

How to change external script url onclick?

本文关键字:外部 脚本 url 点击 改变 何改变      更新时间:2023-09-26

我一直在努力为我的问题找到解决方案。我不是一个经验丰富的人与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()"中删除括号"()"