2010-05-08 4 views
1

IE의 onload 및 onerror 이벤트 처리기에서 이벤트를 트리거 한 이미지의 이미지 src를 어떻게 확인할 수 있습니까? FF에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> 

일을하지만 IE8에서는 $ (event.target) .attr ('SRC') 부분에 대한 정의되지 않은 출력한다 :이 예제 코드는 내가 함께 던졌다. jQuery가 IE 용 이벤트 객체를 표준화하여 다른 브라우저와 같이 작동한다고 생각 했나요? 순열을 여러 번 시도했지만 IE8에서 작동하도록 아무 것도 얻을 수 없었습니다.

어쨌든 IE에서 작동하는 onload 및 onerror 이벤트 처리기에서 이미지 src를 파악하는 방법에 대한 제안이 있다면 정말 감사하겠습니다. 또는로드 된 이미지와로드되지 않은 이미지를 구하는 방법 (그래픽이 아닌 -로드하지 않은 이미지의 파일 이름을 포함하는 배열을 생성해야 함). 감사!

답변

3

Firefox 및 모든 좋은 브라우저에는 .target; IE에서는 .srcElement입니다. 다만 각 APPEND 전에이 줄을 삽입 :

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

그런 다음에 event.target을 변경

targetEl 
+0

Delan - 좋은 시도와 정보 주셔서 감사합니다. IE8은이 경우에 event.target을 사용합니다. jQuery가 IE의 이벤트 객체를 가능한 많이 W3C 호환 브라우저처럼 작동하도록 재설정했기 때문에 IE8에서 event.target을 사용합니다. 따라서이 문제가 해결되지 않았습니다. – Bill

1

OK, 나는 그것을 알아 냈어. FF와 IE8에서 두 즉,

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

작품 -

당신은 이벤트 대상이 아닌 대상의 속성의 currentTarget 속성을 사용합니다.