JavaScript는 어떻게 IE 8이 호환성보기에서 페이지를 다시로드 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1444944

문제

Windows Vista의 Internet Explorer 8에서 상당히 복잡한 JavaScript 기반 웹 응용 프로그램을 테스트하고 있습니다. 응용 프로그램을로드 한 후 IE는 "표준"브라우저 모드 및 "IE 8 표준"문서 모드에 있습니다. 응용 프로그램이 실행되는 동안 IE는 때때로 페이지를 다시로드하고 "(URL)의 디스플레이 문제가 인터넷 익스플로러가 호환성보기에서 페이지를 다시로드하게했다"라는 메시지를 표시합니다 (정확한 메시지가 아니라면 비스타의 비 영어 버전). 다시로드 후 브라우저는 퀴크스 모드입니다.

JavaScript 코드를 디버깅하는 것은 문제를 안정적으로 재생산하거나 좁힐 수 없기 때문에 무익한 운동이었습니다.

도움이 되었습니까?

해결책

당신이 제공하는 마크 업에 문제가 있어야합니다. innerHTML. 다음은 IE 팀의 기사입니다. IE의 자동 복구에 대한 세부 사항 IE8- 표준 모드에서 올바르게 구문 분석 할 수없는 마크 업에서 :

... 새로운 레이아웃 엔진 내에 특정 코드 경로가 있으며, 오류가 발생하면 레이아웃 프로세스가 우아하게 복구 할 수없고 이러한 경로에 대한 주장을 유지했습니다 ... 우리는이 경험을 발표 한 버전에서 더 개선했습니다. IE8 호환성보기를 사용하여 레이아웃 "하드 어셈블리"를 복구하여 IE8. 다시 말해, 우리는 IE7이있는 방식으로 페이지를 보여주는 것이 콘텐츠를 전혀 보여주지 않는 것보다 더 나은 사용자 경험을 제공 할 것이라고 생각합니다.

사용하십시오 innerHTML HTML 파서를 호출하므로 HTML 문자열을 먹이면 페이지가로드 된 후에도이 문제를 유발할 수 있습니다. 헤드 나 꼬리를 만들 수 없습니다.

다른 팁

여기서 확인해 ..

원래. PAGE, 메타 태그를 추가 할 수 있습니다

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

또는 사이트 전체에 이것을 헤더에 추가합니다.

X-UA-Compatible: IE=EmulateIE7

처럼 들린다 자동 충돌 복구 렌더러 자체에서 발생합니다. 그것은 스크립트가 아닌 IE 자체의 버그이므로 디버깅은 실제로 어려울 것입니다.

이것은 모든 IE8 설치에서 발생합니까? IE8이 최신 패치로 업데이트됩니까? (신뢰할 수없는 제 3 자 확장 일 수 있습니까?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top