좋아, 나는 onError 자바 스크립트가 멋지게 작동하도록했다. 그러나 대부분의 경우 대체 이미지를 사용해 볼 필요가 있으며 손상된 경우 로컬 기본 이미지로 되돌려 야합니다.Javascript/JQuery - 깨진 이미지에 대해 오류 기능을 재설정하려면 어떻게해야합니까? (두 번째 깨진 이미지 용)
초기 깨진 이미지 (http://somesite.com/someimage.jpg)에서이 코드는 전달 된 대체 이미지를 올바르게로드합니다. 그러나 코드에서 볼 수 있듯이 대체 이미지가 손상된 경우 로컬 기본 이미지 (/some/local/file.jpg)가로드되도록 source.onerror를 재설정하려고합니다. 그러나 defaultImage()는 호출되지 않습니다. 내가 이것을 source.onerror="alert('hi')";
으로 바꾸면 어쨌든 결코 호출되지 않기 때문에 "this"를 전달할 문제가 아닙니다.
페이지가로드되면 오류가 한 번만 발생하고 다시는 시도하지 않는 것처럼 보입니다. DOM이 img를 다시로드하도록 강제 할 수있는 방법이 있습니까? 대체 이미지가 손상되면 새로운 onerror 함수가 시작됩니다.
<img src="http://somesite.com/someimage.jpg" onerror="AltImage(this, 'http://sommesite.com/otherimage.jpg');"/>
<img src="http://somesite.com/someimage.jpg" onerror="AltImage(this, '');"/>
<script>
function AltImage(source, alt_image){
if (alt_image !=""){
source.src = alt_image;
source.onerror = "defaultImage(this)";
return true;
}
source.src = "/some/local/file.jpg";
source.onerror = "";
return true;
}
function defaultImage(source) {
source.src = "/some/local/file.jpg";
data.onerror="";
return true;
}
</script>
클라이언트 측 스크립트로, 서버가 아닌 브라우저의 보안 설정에 따라 다릅니다. – Ashraf
감사합니다, 그 작품 ... 나는 다른 onload 및 onerror와 새로운 이미지를 만드는 생각하지 않았다! – daSong