2010-02-22 3 views
8
나는 소스 이미지가 발견되지 않는 경우에 나의 웹 페이지에 이미지를 숨기려면 다음과 같은 자바 스크립트 기능을 사용하고

:숨기기 입력 = 이미지 SRC가 발견되지 않는 경우는 "이미지"

function Image_OnError(image) { 
    image.onerror = ""; 
    image.style.visibility = "hidden"; 
    return true; 
} 

을 내가 추가 한 다음 속성을 내 이미지로 가져 오면 onerror="Image_OnError(this);" 오류가 발생하면 위 메소드를 호출합니다.

문제는 <input type="image" /> 요소에 대해 동일한 작업을 수행해야하지만 입력 요소가 OnError 이벤트로 표시되지 않으므로이를 수행하는 방법을 파악할 수 없다는 것입니다.

입력과 동일한 src 값을 가진 추가 이미지를 포함시킨 다음 이미지의 OnError 이벤트에서 입력 요소의 가시성을 수정할 수는 있지만 약간 복잡해 보입니다.

+0

어떤 이유로 든 태그 자체로 변경할 수 없습니까? – vpram86

+0

입력 요소는 필요한 OnCommand 이벤트를 발생시키는 데 사용해야하는 asp : ImageButton 서버 컨트롤에서 만들어집니다. –

답변

2

세미 해킹을 원할 경우 jQuery의 "document.ready"이벤트를 사용하고 입력 높이를 확인할 수 있습니다.

편집 :하는 LinkButton, 및 콘텐츠로의 내부 이미지를 포장 ... 다음의 요구시 작동되는 이벤트를 사용 : 당신에 대한 응답으로 당신은 단지 ASP를 사용할 수 위의 억만 장자의 질문 ... 에 답이야 LinkButton.

+0

+1 위대한 작품입니다. 감사. –

0

동일한 오류 이벤트가 있습니다. 이 사람은 (적어도 크롬에서) 나를 위해 작동 : 문서로드에

:

<input type="image" onerror="alert(1);" src="http://xxx" /> 

또 다른 가능한 방법은 JS에서 이미지를로드하는 것입니다 또한

$('input[type="image"]').each(function(){ 
    var img = new Image(); 
    var input = this; 
    img.onerror = function() { Image_OnError(input); } 
    img.src = this.src; 
}) 

, 당신은 더 나은 거라고 이미지를 숨기고 이미지가 성공적으로로드 된 요소 만 표시하십시오. 그렇지 않으면 아마도 페이지에서 요소가 점프됩니다.

+0

그래, 내가 크롬에 이것을 테스트하고 잘 작동하지만, IE는 언제나처럼, 다른 이야기 ... –

+0

IE 8 작품도 :-) 어떤 IE를 사용합니까? – Qwerty

+0

업데이트 된 답변보기 :-) – Qwerty

관련 문제