动态加载Javascript

时间:2014-07-14 02:27:23

标签: javascript jquery caching

有没有人有类似的经历?我想在点击特定页面时动态加载外部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时,由于Chrome Javascript控制台中提示错误,因此似乎无法成功加载脚本。在我将其更改为false后,它可以正常工作。

问题是如果我在没有单击#tab-4-content一天的情况下保持浏览器开启,我试着在一天之后点击它,再次提示错误,然后我必须将缓存更改为true,执行一,然后再次假,它恢复正常。我不知道缓存是怎么做的,是否有时间过期问题,错误是由缓存设置引起的?

提示错误:未捕获的ReferenceError:未定义验证

致以最诚挚的问候,

开尔文

2 个答案:

答案 0 :(得分:2)

这是.getScript函数,你可以试试这个

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

但我确实认为错误在于validation.js本身就像Sukima所说的那样,如果这不起作用,请先检查该文件。

答案 1 :(得分:0)

绕过所有额外的编码。只需在您要加载的页面中创建一个脚本标记和源代码即可。

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