有人有类似经历吗?我想在单击特定页面时动态加载外部 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 Console 中提示错误。我把它改成 false 后就可以了。
问题是如果我一天没有点击#tab-4-content就保持浏览器打开,一天后我尝试点击它,再次提示错误,然后我必须将缓存更改为true,执行1 然后再次 false,就恢复正常了。我不知道缓存是怎么做的,是否有时间过期问题,错误是由缓存设置引起的?
错误提示:Uncaught ReferenceError:验证未定义
最诚挚的问候,
开尔文
最佳答案
这是.getScript函数,你可以试试这个
$.getScript( "http://www.mydomain/validation.js" )
.fail(function() {
// so something
}).done(function() {
console.log("success load livevalidation");
});
但我确实认为错误出在validation.js本身,就像Sukima所说,如果这不起作用,请先检查该文件。
关于javascript - 动态加载Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728795/