代码之家  ›  专栏  ›  技术社区  ›  Kelvin

动态加载Javascript

  •  0
  • Kelvin  · 技术社区  · 12 年前

    有人有类似的经历吗?我希望在单击特定页面时动态加载外部javascript。下面是我写的代码:

        $("#tab-4-content").load("/reg.php?id="+this.id+"&ads="+$(this).data('ads')+"&f="+$(this).data('file')+"&mid="+$(this).data('mid'));
    $.ajax({
      url: "http://www.mydomain/validation.js",
      dataType: "script",
      cache: false,
        }).done(function() {
            console.log("success load livevalidation");
        });
        $.mobile.changePage("#tab-4");
    }); // tab-4-content click
    

    validation.js是验证表单输入的脚本。 当缓存设置为true时,由于ChromeJavascript控制台中提示错误,脚本似乎无法成功加载。在我将其更改为false后,它就起作用了。

    问题是,如果我在一天内不点击#tab-4-内容的情况下打开浏览器,我在一天后尝试点击它,错误再次出现,然后我必须将缓存更改为true,执行一个,然后再次为false,它将恢复正常。我不知道缓存是如何工作的,是否存在时间过期问题,并且错误是由缓存设置引起的?

    提示错误: 未捕获引用错误:未定义验证

    顺致敬意,

    开尔文

    2 回复  |  直到 12 年前
        1
  •  2
  •   morgan9999    12 年前

    这是.getScript函数,您可以尝试

    $.getScript( "http://www.mydomain/validation.js" )
    .fail(function() {
        // so something
    }).done(function() {
        console.log("success load livevalidation");
    });
    

    但我确实认为错误发生在validation.js本身,正如Sukima所说,如果这不起作用,请先检查该文件。

        2
  •  0
  •   Jason    12 年前

    绕过所有额外的编码。只需在正在加载的页面中创建一个脚本标记和所需javascript文件的源。

    <script src="/validation.js"></script>