2014-09-09 2 views
1

나는 사용자가 IE8 이하에 있는지 확인하는 작은 스크립트를 작성하고 있습니다. 그럴 경우 스크립트는 문서 (본문 및 머리글)를 완전히 비우고 실행중인 모든 스크립트를 중지해야합니다.빈 문서가 더 이상 자바 스크립트를 중지

나는 document.write()으로 놀았지만, window.onload으로 만 작동합니다. 하지만 브라우저 버전 (스크립트가 실행되는 시점)을 알게되는 즉시 실행하고 싶습니다.

예제 페이지 설정 :

<html> 
    <header> 
    Some CSS 
    Some meta 
    ... 
    </head> 
    <body> 
    Page content 

    <script> 
     if (IE < 8) { //in reality I have a function to determine this 
     document.write('You browser is outdate. Please upgrade to view this site.'); 
     } 
    </script> 

    <script src="more-scripts"></script> 
    </body> 
</html> 

나는 그것이 않는 window.onload에서 스크립트를 감싸는 경우 작동하지 않지만. 그러나 코드가 실행되기 전에 페이지가 깜박입니다. 어떻게 작동시킬 수 있습니까?

+2

이렇게하는 방법이 많이 있습니다. 당신은 seraching하여 그들을 찾을 수 있습니다. – Popnoodles

+0

['document.write()'] (https://developer.mozilla.org/en-US/docs/Web/API/document.write)에 관해 말할 때 정확한 코드를 게시해야합니다. "[document.open()'] (https://developer.mozilla.org/en-US/docs/Web/API/document.open)을 호출하지 않고 이미로드 된 문서를 작성하면 자동으로 문서가 수행됩니다 .열다." – Teemu

+0

@Popnoodles 검색을했는데 나에게 적합한 솔루션을 찾을 수 없었습니다. 내가 왜 여기에 게시했다고 생각하니? 귀하의 의견은 건설적이지 않습니다. – Coop

답변

1

보다는 메시지를 인쇄 할 document.write()를 사용하여, 당신은 완전히 페이지의 본문을 대체 할 document.body 요소의 .innerHTML 속성을 사용할 수 있습니다. 이 기술의 경우 브라우저 확인 스크립트는 body이 아닌 head 섹션에 있어야합니다 (일반적으로이 스크립트는 어쨌든 갈 것입니다).

<html> 
    <header> 
    Some CSS 
    Some meta 
    ... 
    <script> 
     if (IE < 8) { //in reality I have a function to determine this 
     document.body.innerHTML = "You browser is outdate. Please upgrade to view this site."; 
     } 
    </script> 
    </head> 
    <body> 
    Page content 
    <script src="more-scripts"></script> 
    </body> 
</html> 
+0

작동하지 않는지 알려주세요. 나는 그것을 시험 할 도구가 없다. –

+0

작동하지 않습니다.if 문없이 Chrome에서 테스트하므로 스크립트가 매번 실행되어야합니다. 'document.write ('') '는 아무 것도하지 않는 것 같습니다. – Coop

+0

@Cooper 새로운 기술로 업데이트했습니다. 여기에 개념 증명이 있습니다 : http://jsfiddle.net/3vuftj0c/ –

0

당신은 조건부 주석을 사용할 수 있습니다

<!--[if IE 8]> 
    <script> 
     document.body.innerHTML = ''; 
     document.write('You browser is outdate. Please upgrade to view this site.'); 
    </script> 
<![endif]--> 
+0

그리고이 스크립트는 이렇게합니다 : "문서를 비우고 자바 스크립트를 더 이상 중지 하시겠습니까?" – Popnoodles

+0

이 조금 업데이트되었으므로 에서 모두 제거해야합니다. – shershen

+0

내 질문에 모두 대답하지 않습니다. 올바른 버전의 IE에서 작동하도록 스크립트를 가져 오는 것은 문제가 아닙니다. 스크립트는 내가 원하는 작업을 수행하지 않습니다.이 작업은 문서를 지우고 스크립트가 실행되지 않은 것을 확인합니다. – Coop

관련 문제