문제

비교적 엄격한 문서 유형과 HTML 마크업을 사용하는 페이지가 있으며 준수에 매우 가깝지만 제어할 수 없는 사용자 콘텐츠로 인해 몇 가지 어리석은 방식으로 누락될 수 있다고 가정해 보겠습니다.콘텐츠 관리 시스템이나 일부 기본 구조를 제어하고 일부 자바스크립트가 필요한 콘텐츠 관리 시스템용 테마를 작업 중이지만 페이지에 들어가는 다른 모든 것에 대한 책임은 없다고 가정해 보겠습니다.

어떻게 알 수 있나요(또는:브라우저가 더 많은 표준을 준수하는 엔진을 사용하는 대신 "특이한" 모드로 전환하기로 결정하면 어떻게 결정됩니까?

IE, Chrome, Safari 및 Firefox는 물론 모두 다르게 처리하므로 각 주요 브라우저에 대한 답변을 찾고 있습니다.단 하나의 오류만으로도 강제할 수 있나요? 아니면 약간의 여유가 있나요?

도움이 되었습니까?

해결책

~ 안에 파이어 폭스와 오페라 페이지 정보를 확인하여 브라우저가 "퀴크스 모드"인지 확인할 수 있습니다.

사용 document.compatMode, 대부분의 브라우저와 함께있는 모드를 알려줄 것입니다.

~ 안에 크롬, 사파리 및 즉,이 JavaScript를 주소 표시 줄에서 실행하십시오.

 javascript:window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.')

(다시 유형이 필요합니다 javascript: 최근 보안 변경으로 인해 주소 표시 줄에 붙여 넣은 후 부분)

다른 팁

JavaScript에서 렌더링 모드를 쿼리할 수 있으므로 북마크릿 페이지가 어떤 렌더링 모드를 사용하고 있는지 알려줍니다.

나는 찾았다 이 렌더링 모드 북마크릿 그것은 나에게 잘 작동합니다 :

javascript:m=(document.compatMode=='CSS1Compat')?'Standards':'Quirks';window.alert('You%20are%20in%20'%20+%20m%20+%20'%20mode.');

실제 특정 질문에 대한 전체 답변은 '강제 강제 또는 여유가 있습니까?' 그것은 완전히 오류에 달려 있다는 것입니다. 예를 들어,

<!-- Comment -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

실제로 오류가 발생하지 않더라도 IE 6 & 7의 Quirks 모드를 강제로 강제합니다 (파일의 첫 줄이 선언이 아닐 때 완전히 흔들릴 수 있습니다). 빠른 유형/퀴크 목록을 찾을 수 있습니다. 여기

테스트를 위해 HTML에서 다음 줄을 붙여보십시오 (매우 나쁜 JavaScript 동작은 여기에 전달합니다 - 죄송합니다 ... 이것이 결코 살아나지 않도록하십시오 :)

<a href="javascript:alert(document.compatMode);">What mode am I?</a>

에 따르면 http://www.quirksmode.org/css/quirksmode.html : "문제는 Quirks 모드로 작성된 일부 페이지가 DocTypes를 가지고 있다는 것입니다. 따라서 각 브라우저에는 Quirks 모드를 트리거하는 DocTypes가있는 자체 목록이 있습니다.이 목록의 개요는이 브라우저 비교 차트를 참조하십시오. http://hsivonen.iki.fi/doctype/"

도움이 되었기를 바랍니다

당신이 그것이 엄격해야한다고 말하면 (doctype를 통해) 페이지의 반쯤 마음을 바꾸지 않을 것입니다.

Quirks 모드를 올바르게 이해하면 선언 된 DocType에 대해 검증되지 않는 페이지만으로도 Quirks 모드를 트리거하기에 충분하지 않습니다. 올바르게 표시되지 않습니다.

다른 브라우저가 각 DocType를 처리하는 방법을 결정하기 위해 내가 찾은 최고의 리소스 여기.

Web Developer Toolbar Add On이있는 Firefox의 경우 막대 오른쪽에있는 아이콘 트리오를 볼 수 있습니다. 가장 왼쪽은 당신이 어떤 모드에 있는지 알려줍니다.

즉, 개발자 도구 (F12를 누르면)에서 볼 수 있습니다. 메뉴에서 다음과 같이 표시됩니다. 문서 모드 : ... 그리고 다른 모드를 강요 할 수도 있습니다.

html5 페이지에서 쓰기 "<!DOCTYPE html>"페이지로 시작하여 document.compatmode = 'css1compat'으로 변경 될 수 있습니다.

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