2011-09-16 7 views
1

에 DOM 트리에 추가 할 수 없습니다 이미지 일으키는 원인이 : 나는 나 서버에 존재하지 않을 수있는 이미지를로드하고있어나는 다음과 같은 달성하기 위해 노력하고있어 IMG의의 OnError 핸들러

합니다. 이미지가 존재하지 않으면 image onerror 핸들러가 트리거됩니다. 내가하고 싶은 일은 dom 트리에서 이미지를 제거하는 것입니다 (깨진 이미지 아이콘이 나타나지 않도록).

다음 크롬에 있지만 파이어 폭스에

onerror="this.parentElement.removeChild(this);" 

작품. 그 이유는 이미지가 아직 domtree에 연결되어 있지 않기 때문입니다 (parentElement는 null 임).

는 또한 서버에서 일부 투명 이미지에 src 속성을 설정하는 시도했지만 다음 내 온로드의 evenhandler은 그겁니다 내가 설정 한 호출됩니다 :

onerror="this.onload=null;this.src='transparentimage';" 

내가 원하는 것을 달성하는 또 다른 방법이 있나요?

알아낼 수 없습니다!

멋진 아이디어가 있습니까?

안부,

니클라스

답변

1

이 문제에 대한 간단한 해결책 :

<img src="imageURL" style="display:none" onload="this.style.display='block'"/> 

은 아마 사람을 도움이 될 것입니다. .

+0

이것이 일반 바닐라 JavaScript로드 이벤트에 적용되는지는 알 수 없지만 jQuery 설명서에 따르면 .load()가 안정적이지는 않습니다 (http://api.jquery.com/load-event/). 따라서 오류를 대신 사용하는 것이 좋습니다. 스타일을 "display : block"으로 설정하고 onerror를 none으로 설정합니다. – mhenry1384

0

여기 jQuery를 함께 할 방법은 다음과 같습니다
$ ("IMG") 오류 (함수() { $ (이) .remove(); });

IE의 경우 HTML의 항목 뒤에 오류 처리기를 설정해야합니다. document.ready()에서 실행하면 트리거되지 않습니다.

관련 문제