2010-07-17 5 views
0

구현되지 않은 오류가있는 IE8에서이 줄에 오류가 발생합니다. 어떻게 다른 브라우저에서이 줄을 실행하고 Internet Explorer 8에서이를 무시합니까?구현되지 않았습니다. IE8 :이 문제를 해결하려면?

window.onbeforeunload = function() { 

이것은 이상합니다. 이 오류는 내부에서 발생하지 않습니다. 이 스크립트는 본문의 끝에로드되므로 모든 HTML이 존재하며이 코드를 파일의 맨 아래로 이동하면 해결됩니다. 왜?

<!--[if !(IE 8)]> 
<![endif]--> 

당신의 < 스크립트 arround에 넣어 의미

window.onbeforeunload = function() { 
    var txtbox = $('.box textarea').eq(0); 
    var txt = txtbox.val(); 
    var btn = $('.box button').eq(0).html(); 
    if (btn == "Thank You") 
     return; 
    if (btn == "Sending") 
     return "not complete"; 
    if (txt != '') { 
     return "blah" 
    } 
    return; 
} 
+0

코드 실행이 중지됩니까? 그렇지 않다면 간단히 무시하십시오. – tcooc

+0

코드 실행을 중지합니다 –

+0

전체 기능입니까? 그렇다면 구문 오류/누락 된 본문/닫기입니다. 그렇지 않으면 메서드의 내용이 문제의 원인이기 때문에 메서드의 내용을 게시하십시오. –

답변

0

사용 조건부 주석> - 블록

<!--[if !(IE 8)]> 
<script type="text/javascript"> 
window.onbeforeunload = function() { 
    [...] 
} 
</script> 
<![endif]--> 
+0

이 코드는 html이 아닌 JS 파일에 있습니다. 그래서 그것을 분할하고 포함 주변 조건을 넣어야합니까? –

+0

네, 그렇다면 두 개의 JS 파일로 나눌 수 있고, 위의 설명과 같은 조건부 주석이있는 IE 8이 아니라면 두 번째 JS 파일을로드 할 수 있습니다. 하지만 브라우저가 2 개의 JS 파일을로드해야하므로 페이지가 조금 느려집니다. – JochenJung

0

당신 Conditional Compilation의 JS 동등한를 사용할 수 있습니다 조건부 주석.

브라우저를 스니핑 할 수 있는지 확실하지 않습니다.

관련 문제