이미지를 찾을 수없는 경우 HTML


99

HTML 페이지에 이미지가 있습니다.

<img src="smiley.gif" alt="Smiley face" width="32" height="32" />

서버에서 이미지를 찾을 수없는 경우보기 흉한 빈 사각형이 표시됩니다.

이미지가 발견되지 않으면 서버에 확실히있는 다른 기본 이미지 나 아무것도 표시하지 않도록 만들고 싶습니다.

어떻게 할 수 있습니까?


2
파비콘을 받고 있는데 일부 사이트에는 없습니다.
David19801 2011

이 경우 어떤 상태 코드가 반환되는지 확인하기 위해 먼저 서버 측 또는 클라이언트 측 요청을 수행 할 수 있습니까?
Pekka 2011

느린 웹 사이트를 좋아하지 않고 서버 측에서 할 수있는 파비콘이 너무 많기 때문에 js를 사용하지 않으려 고합니다. 서버가 금지 될 것입니다.
David19801 2011

9
자바 스크립트가 웹 사이트를 느리게 만들 것이라고 말한 바보는 누구입니까 ??
Qchmqs 2011

@Pekka 웃 물론 사이트에 작동하는 링크가 있어야합니다. 링크가 귀하의 사이트가 아니라 다른 사람의 것이면 어떻게됩니까? 아니면 원격 데이터 저장소에서 다운로드하고 다운로드하는 데 시간이 걸리는 경우 어떻게해야합니까?
leetheguy

답변:


269

문제를 해결하는 가장 좋은 방법 :

<img id="currentPhoto" src="SomeImage.jpg" onerror="this.onerror=null; this.src='Default.jpg'" alt="" width="100" height="120">

onerror 당신에게 좋은 것입니다 :)

이미지 파일 이름을 변경하고 직접 시도하십시오.


4
유용한 alt 태그와 함께 사용하면 문제를 해결할 수 있습니다.
mlibby 2011

2
놀랄 만한! 완벽한 솔루션
에마 Pavanello

5
Default.jpg를 사용할 수없는 경우 무한 루프가됩니다. 수표를 추가해야합니다if (this.src != 'Default.jpg')
dehlen

7
무한 루프를 피하고 if보다 더 나은 : this.onerror=null;@Sudarshan이 아래에 제공 한대로.
Guillaume F.


18

그럼 당신은 이것을 시도 할 수 있습니다.

  <object data="URL_TO_Default_img.png" type="image/png">
   <img src="your_original_image.png" />
  </object>

이것은 나를 위해 일했습니다. 당신에 대해 알려주세요.


5
모든 주요 브라우저에서 작동하는 것 같습니다. 기본값과 원본을 바꾸십시오. 객체는 원본 이미지와 img 기본 이미지를 렌더링합니다.
Evgeny

10

좋아,하지만 나는 이런 식으로 사용하는 것을 좋아한다. 그래서 원본 이미지를 사용할 수 없을 때마다 당신이 가장 좋아하는 스마일 리나 미안하다고 말하는 이미지가 될 수있는 기본 이미지를로드 할 수있다. 사용할 수 없지만 두 이미지가 모두 누락 된 경우 텍스트를 사용하여 표시 할 수 있습니다. 당신도 웃을 수 있습니다. 거의 모든 경우를 커버합니다.

<img src="path_to_original_img/img.png"  alt="Sorry! Image not available at this time" 
       onError="this.onerror=null;this.src='<?=base_url()?>assets1/img/default.jpg';">

1
검색 엔진에서 페이지를 올바르게 구문 분석하려면 오류 텍스트에 alt를 사용하지 마십시오. 검색 엔진이 콘텐츠 데이터를 잘못 인덱싱 할 수 있습니다.
varela

무엇을 <?=base_url()?>합니까? 놀랍게도 서버 측 및 프레임 워크 기반 코드를 추가하는 이유는 무엇입니까?
Nico Haase

@NicoHaase는 php 프레임 워크의 URL입니다. 항상 이미지에 대한 고유 한 URL을 작성할 수 있습니다. 예를 들어 복사하여 붙여 넣거나 해당 URL에 집중해야하는 것은 아닙니다. URL을 포함합니다. 설명하려면 예를 들어야합니다.
Sudarshan Kalebere

3

여기에 이미지 이름을 잘못 입력 한 코드 스 니펫을 확인하십시오. 따라서 대체 이미지를 찾을 수없는 이미지 (404.svg)로 표시합니다.

<img id="currentPhoto" src="https://www.ccrharrow.org/Images/content/953/741209.pg" onerror="this.src='https://www.unesale.com/ProductImages/Large/notfound.png'" alt="">


1

이 시나리오를 처리하는 일반적인 방법은 alt태그를 의미있는 것으로 설정하는 것입니다.

대신 기본 이미지를 원하는 경우 다음과 유사한 형식을 사용하여 호출하는 서버 측 기술을 사용하여 이미지를 제공하는 것이 좋습니다.

<img src="ImageHandler.aspx?Img=Blue.jpg" alt="I am a picture" />

에서 ImageHandler.aspx코드, 어떤 파일 찾을 수 없다는 오류를 포착하고 최대 역할을 default.jpg대신.


1

다음을 추가하여 대체 텍스트를 표시 할 수 있습니다 alt.

<img src="my_img.png" alt="alternative text" border="0" /> 


예 : img 표시 스타일은 '블록'의 경우 고도가 작동하지 않는 것
JohnFlux

1

이미지 주위에 부모 div를 추가하고 다음 onerror 이벤트 핸들러를 사용하여 원본 이미지를 숨겼습니다. IE에서는 alt 속성을 사용한 후에도 여전히 못생긴 이미지를 찾을 수없는 이미지가 표시 되었기 때문입니다.

<div style=" width:300px; height:150px; float:left; margin-left:5px; margin-top:50px;">
        <img src='@Url.Content("~/Images/Logo-Left.png")' onerror="this.parentElement.innerHTML = '';" />
</div>

1

대안으로, 이미지가 존재하지 않는 경우-아무것도 표시하지 않습니다. (내가 찾던 것)

"onerror"속성에있는 Robby Shaw의 답변에서 "this.remove ()"로 함수를 바꿀 수 있습니다.

<img id="currentPhoto" src="SomeImage.jpg" alt='1' width="100" height="120">
<img id="currentPhoto" src="SomeImage.jpg" onerror="this.onerror=null; this.remove();" alt="2" width="100" height="120">


0

사용해보십시오 border=0img추악한 광장 멀리 갈 수 있도록 태그입니다.

<img src="someimage.png" border="0" alt="some alternate text" />


0

나는 <img>태그가 차지하는 공간을 숨기고 싶었 기 때문에 이것이 나를 위해 일했습니다.

<img src = "source.jpg" alt = "" >


0

텍스트 대신 대체 이미지를 원하면 php를 사용할 수도 있습니다.

$file="smiley.gif";
$alt_file="alt.gif";
if(file_exist($file)){
     echo "<img src='".$file."' border="0" />";
}else if($alt_file){
     // the alternative file too might not exist not exist
     echo "<img src='".$alt_file."' border="0" />";
}else{
  echo "smily face";
}

0

이를 처리하는 간단한 방법은 배경 이미지를 추가하는 것입니다.


0

PHP 사용해보기

if (file_exists('url/img/' . $Image)) {
    $show_img_URL = "Image.jpg";
} else {
    $show_img_URL = "Image_not_found.jpg";
}

-1

이미지가 깨지면 alt 속성을 사용하지 않으려면이 코드를 사용하고 그에 따라 설정할 수 있습니다.

<h1>
  <a> 
   <object data="~/img/Logo.jpg" type="image/png">
     Your Custom Text Here
   </object>
  </a>
</h1>

-2

이것은 나를 위해 일했습니다. srcset 사용. 나는 그것에 대해 방금 배웠으므로 브라우저가 지원하는지 모르겠지만 나를 위해 일했습니다. 시도하고 나중에 피드백을주세요.

 <img src="smiley.gif" srcset="alternatve.gif" width="32" height="32" />

-21

솔루션-img의 높이와 너비 요소를 제거한 다음 대체 텍스트가 작동했습니다.

<img src="smiley.gif" alt="Smiley face" width="32" height="32" />

<img src="smiley.gif" alt="Smiley face" />

다들 감사 해요.


18
그래서 스스로 "정답"을 주셨지만 GG WP와는 무관 한 대답을하셨습니다.
Jean-Paul

오,이 사람은이 모든 정답 중에서 자신의 대답을 받아 들였습니다. hahaha, 자신을 소중히 여기는 좋은 방법.
Sudarshan Kalebere


이 답변은 대체 이미지를 제공하지 않았습니다.
Patrick Knott

@ david19801 설명에 관심?
P Satish Patro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.