웹 페이지를 열면 0행에 스택 오버플로 메시지가 표시됩니다. 다음과 같이 스크린샷을 만들었습니다.
분석 결과, 웹 페이지에 다음과 유사한 코드가 있는 것으로 나타났습니다.
<img src="pic.gif" onerror="javascript:this.src='/noPic.gif';"
분석: onerror에 특별한 주의를 기울이십시오. 그림이 존재하지 않으면 onerror가 트리거되고 onerror는 img에 대해 NoPic.gif 그림을 지정합니다. 즉, 사진이 있으면 pic.gif가 표시되고, 사진이 없으면 noPic.gif가 표시됩니다. 그런데 여기서 문제가 발생합니다. noPic.gif가 존재하지 않으면 onerror가 계속 발생하여 루프가 발생하므로 오류가 발생합니다.
참고: 사진은 존재하지만 네트워크가 원활하지 않은 경우 onerror가 발생할 수도 있습니다.
해결 방법: 먼저 onerror 코드를 제거하거나 onerror 코드를 다른 것으로 변경하거나 onerror의 이미지가 충분히 작고 존재하는지 확인하세요.
두 번째 유형:
<스크립트 유형="텍스트/자바스크립트">
<!--
함수 nofind(){
var img=event.srcElement;
img.src="../../../sys/common/image/fileoperation/icon/default.gif";
img.onerror=null; 계속 치는 것을 방지
}
//찾지 못할 경우 이벤트를 이용해 하나씩 가져옵니다.
//-->
</script>
<td align="center"><img src="../../../sys/common/image/fileoperation/icon/${file.suffix }.gif" onerror="nofind();" >${파일.이름}</td>
세 번째 유형:
두 개의 <img /> 사용
<스타일 유형="텍스트/css">
숨겨진 {
디스플레이: 없음;
}
</style>
<img src="xxx.jpg" onerror="this.class='hidden';xx.class=''" />
<img src="xxx.jpg" />