我有一个使用jquery的页面,我想检测外部文件是否存在。如果是的话,我想将它加载到div中,但如果它没有,我希望它什么也不做。
我使用此代码并且它可以加载文件,但是如果外部文件不存在,它会加载404错误页面。我是jquery的新手,非常感谢任何帮助。此外,检查文件的方法需要具有rootdomain +,以便可以将代码插入多个站点而无需编辑。
$(function() {
$('#test').load('/pages/test.html');
});
非常感谢任何帮助。我一直在搜索天,但我发现的唯一的事情是头部检查脚本,如果网址不有效,则不能选择不做任何事情。我很想知道如何自己编写这个简单的代码,但现在它已经超出了我的想法。 :)
杰里
答案 0 :(得分:4)
尝试使用ajax()
方法而不是load()
并在成功回调中设置html()
:
$(function() {
$.ajax({
url: "/pages/test.html",
cache: false,
dataType: "html",
success: function(html){
$('#test').html(html);
}
});
});
答案 1 :(得分:2)
使用Ajax调用:
$.ajax({
url: '/pages/test.html',
success: function(data){
$('#test').html(data);
},
statusCode: {404: function() {
$('#test').html('Unable to retrieve data. Please try again');
}
});
答案 2 :(得分:1)
我认为这就是你想要的:) How to check if a file exists in javascript?
答案 3 :(得分:0)
我考虑过做类似的事情。我用Ajax解决它。谷歌搜索产生了其他人已经建立的代码 [XUL Ajax站点] [1]似乎做你想做的事 - 假设使用Ajax加载其他页面就可以。
通过一些编码,您可以使用此技巧显示任何内容,消息或不同的页面,如果找不到您想要的那个...现在,代码将显示404,因为它存在,但这是一个相当微不足道的变化。实际上,如果您在页面底部下载脚本存档,并打开responseHTML.js文件,则可以取消注释单行,以便在其他页面不存在时不执行任何操作。
代码示例使用硬编码的div名称,但您可以轻松地将它们更改为您自己的,或修改函数以接受它们作为参数。我计划在不久的将来在我自己的一个网站上使用此代码,如果另一个网页关闭则需要重定向。
在没有使用Ajax的情况下,我想不出一个好的方法...
嗯。我在工作中心烦意乱,并且链接没有加载。其他答案基本相同,甚至更简单的jQuery。原始的javascript也适用于那些没有使用jquery的页面,所以仍然可能值得留在这里链接。