动态加载Javascript

Dynamically load Javascript

本文关键字:Javascript 加载 动态      更新时间:2023-09-26

有人有类似的经历吗?我想加载一个外部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

validate .js是用于验证表单输入的脚本。当缓存设置为true时,脚本似乎无法成功加载,因为Chrome Javascript控制台提示错误。在我把它改为false之后,它就工作了。

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

错误提示:Uncaught ReferenceError: Validation is not defined

最诚挚的问候,开尔文

这是。getscript函数,你可以试试

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

但是我确实认为错误是在validate .js本身,就像Sukima说的,如果这不起作用,先检查那个文件

绕过所有额外的编码。只需创建一个script标签和javascript文件的源代码,你需要在你正在加载的页面。

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