<img src="one.jpg" height="200" width="200">
<img src="three.jpg" height="200" width="200"><br>
<a href="mylink.html"><u> Click Here </u></a><br>
<script src="displayAlert.js"></script>
<style type="text/css" src="externCSS.css"> </style>
$(document).ready(function(){
$("[src]").error(function(){
alert ("error");
});
});
预期输出 - 当指定路径中不存在文件时,代码应显示警报。
仅当图像文件不在指定路径时,jquery才会显示警报。如果css或脚本文件不存在,它不会显示任何内容。我哪里错了?
答案 0 :(得分:0)
尝试
$("img")
.error(function(){
$(this).hide();
})
.attr("src", "missing.png");
检查是否为DOM
使用定义了attr。
var attr = $(this).attr('src');
// `attr` is false. Check for both.
if (typeof attr !== 'undefined' && attr !== false) {
//code goes here
}
传递多个选择器
$(window).load(function()
{
$('script,img,link').each(function()
{
var attr = $(this).attr('src');
// `attr` is false. Check for both.
if (typeof attr !== 'undefined' && attr !== false)
{
//code goes here
}
});
});
答案 1 :(得分:0)
这是用jQuery jQuery error
写的在浏览器触发错误之前,必须附加事件处理程序 event,这就是为什么示例在附加后设置src属性的原因 处理程序。此外,错误事件可能无法正确触发 页面在本地提供;错误依赖于HTTP状态代码和意志 如果URL使用文件:protocol。
,通常不会被触发
这意味着您必须在页面加载完成之前附加处理程序。 我认为这是你的问题。
这是jQuery示例代码:
$('#book')
.error(function() {
alert('Handler for .error() called.')
}).attr("src", "missing.png");
如果您正在寻找可立即使用的解决方案,我建议:
<img url="one.jpg" height="200" width="200">
<img url="three.jpg" height="200" width="200"><br>
<a href="mylink.html"><u> Click Here </u></a><br>
<script url="displayAlert.js"></script>
<script src="jquery.min.js"></script>
<style type="text/css" url="externCSS.css"> </style>
<script>
$("[url]").each ( function () {
$(this).error (function () {
alert ( "Error" );
}).attr ( 'src', $(this).attr ("url"));
});
</script>