簡體   English   中英

確定IE中onload和onerror事件處理程序中的圖像src

[英]Determine image src in onload and onerror event handlers in IE

如何在IE中的onload和onerror事件處理程序中確定觸發事件的圖像的圖像src? 我把這個示例代碼放在一起:

<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
function loadImages() {
   var goodImage = new Image();
   var missingImage = new Image();

   $(goodImage).bind('load', function(event){
      $("#log").append( $(event.target).attr('src') + ' WAS FOUND <br>');
   });

   $(missingImage).bind('load', function(event){
      $("#log").append( $(event.target).attr('src') + ' WAS FOUND <br>' );
   });

   $(goodImage).bind('error', function(event){
      $("#log").append( $(event.target).attr('src') + ' IS MISSING <br>');
   });

   $(missingImage).bind('error', function(event){
      $("#log").append( $(event.target).attr('src') + ' IS MISSING <br>');
   });

  goodImage.src = 'GOOD-IMAGE.GIF'; // this image exists
  missingImage.src = 'MISSING-IMAGE.GIF'; // this image doesn't exist
}

</script>
</head>
<body onload="loadImages();">
<div id="log"></div>

在FF中工作,但在IE8中,它打印出$(event.target).attr('src')部分的undefined。 我認為jQuery應該規范IE的事件對象,以便它像其他瀏覽器一樣? 我已嘗試過多種排列,但未能在IE8中獲得任何效果。

無論如何,如果有人建議如何找出在IE中工作的onload和onerror事件處理程序中的圖像src我會非常感激。 甚至如何在圖像加載后已經加載並且沒有(但不是圖形 - 我需要生成包含未加載的圖像的文件名的數組)。 謝謝!

在Firefox和所有優秀的瀏覽器中,它是.target ; 在IE中它是.srcElement 只需在每次追加之前插入此行:

var targetEl = event.target || event.srcElement;

然后將event.target更改為:

targetEl

好的,我明白了。

您必須使用事件對象的currentTarget屬性而不是目標屬性 - 即,

  $("#log").append( $(event.currentTarget).attr('src') + ' WAS FOUND <br>');

適用於FF和IE8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM