我在使用jQuery和<img>
标签进行错误处理时遇到了一些问题。我的代码如下所示:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta charset="utf-8">
<title>welp</title>
</head>
<body>
<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" alt="someFakeLink" width="150" height="78"/></a>
<script>
$(document).ready(function(){
$("img").on("error", function(){
$(this).hide();
alert("AnnoyingPopups");
});
});
</script>
</body>
</html>
我问,因为脚本适用于jsFiddle,但如果我将其写入index.html文件则不行。
我对此感到困惑和沮丧,因为它显然适用于jsFiddle,但当我在本地机器上执行时它不会。
小提琴链接在这里:https://jsfiddle.net/znq2y6h6/
我希望有人能向我解释这一点。
答案 0 :(得分:0)
尝试将图片src放在&#39; http&#39;,它可能对您有所帮助。因此,请更改您的图片代码:
<img src="http://www.stackoverflow.com/logo.png" alt="someFakeLink" width="150" height="78"/>
答案 1 :(得分:0)
Img错误事件无效你是否使用了文档就绪函数,因此如果首先调用DOM元素,那么将调用文档就绪调用和错误事件。
那时已经调用了img元素,以便错误事件无法正常工作
@ 在jsfiddle中,当它们是用于脚本和html元素的window.onload函数时
此代码用于您
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta charset="utf-8">
<title>welp</title>
</head>
<body>
<script>
$(document).ready(function()
{
$("img").on("error", function(){// not working
$(this).hide();
alert("AnnoyingPopups");
});
function imagealertnotworking(e){alert('onerror image alert not working');} // not working
});
function imagealertworking(e){alert('onerror image alert working');} // working
</script>
<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" onerror="eval(alert('on dom working alert1'),imagealertworking())" alt="someFakeLink" width="150" height="78"/></a>
<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" onerror="eval(alert('on dom working alert2'),imagealertnotworking())" alt="someFakeLink" width="150" height="78"/></a>
</body>
</html>
&#13;