最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - JQuery error() function not working in IE - Stack Overflow

programmeradmin0浏览0评论

I have the following image element that it's src does not exists. I want to use the jquery error function to detect if it has not loaded and replace the src with a generic image that I know exists. This works in chrome and firefox but on in IE. Why does this not work in IE and are there any workarounds? Thanks!

<img id="main" src="missing-image.jpg" />

<script type="text/javascript">

    $(function () {
        $("#main").error(function () {
            $("#main").attr("src", "generic.jpg");
        });
    });

</script>

I have the following image element that it's src does not exists. I want to use the jquery error function to detect if it has not loaded and replace the src with a generic image that I know exists. This works in chrome and firefox but on in IE. Why does this not work in IE and are there any workarounds? Thanks!

<img id="main" src="missing-image.jpg" />

<script type="text/javascript">

    $(function () {
        $("#main").error(function () {
            $("#main").attr("src", "generic.jpg");
        });
    });

</script>
Share Improve this question asked Jul 29, 2011 at 14:02 PhilPhil 4,2244 gold badges25 silver badges40 bronze badges 2
  • 2 take a look an similar question stackoverflow./questions/263359/… – Carlos Co Commented Jul 29, 2011 at 14:11
  • It looks like jquery ignores .error() in IE if there is no file extension on the source. I had to use the workaround Carlos mentions in the ment above. – Buchannon Commented Jun 11, 2012 at 19:43
Add a ment  | 

3 Answers 3

Reset to default 3

Timing issue?

DEMO HERE

<img id="mainImage" src="placeholder.jpg" />

<script type="text/javascript">
$(document).ready(function() {
  $("#mainImage").error(function () {
    $(this).attr("src", "generic.jpg");
  });
  $("#mainImage").attr("src","possibly_missing_image.jpg");
});

</script>

I ran into the same problem with ie and setting the img src to itself allowed enough time for ie to catch the image error

$(document).ready(function() {
  $("#mainImage").error(function () { 
    $(this).attr("src", "generic.jpg");
  })
  .each(function() {
  $(this).attr("src",$(this).attr("src"));
  });
 });

Try this

$(function () {
        $("#main").bind('error abort', function () {
            $(this).attr("src", "generic.jpg");
        });
    });
发布评论

评论列表(0)

  1. 暂无评论