有没有人有类似的经历?我想在点击特定页面时动态加载外部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:未定义验证
致以最诚挚的问候,
开尔文
答案 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>