IT박스

브라우저가 "쿼크"모드인지 확인하는 방법

itboxs 2020. 7. 6. 08:06
반응형

브라우저가 "쿼크"모드인지 확인하는 방법


비교적 엄격한 doctype과 HTML 마크 업을 가진 페이지가 호환에 가깝지만 몇 가지 바보 같은 방식으로 누락되었을 수 있다고 가정 해 봅시다. 어쩌면 통제 할 수없는 사용자 콘텐츠로 인해 ... 콘텐츠 작업을하고 있다고 가정 해보십시오. 일부 기본 구조를 제어하고 일부 자바 스크립트가 필요한 콘텐츠 관리 시스템의 테마 또는 관리 시스템이지만 페이지에 들어가는 다른 모든 것에 대해서는 책임을지지 않습니다.

브라우저가 더 표준 호환 엔진을 사용하지 않고 "쿼크"모드로 전환하기로 결정한 경우 어떻게 알 수 있습니까?

IE, Chrome, Safari 및 Firefox는 물론 각각 다르게 처리하기 때문에 각 주요 브라우저에 대한 답변을 찾고 있습니다. 하나의 단일 오류로 인해 오류가 발생하거나 약간의 여유가 있습니까?


Firefox 및 Opera 에서는 페이지 정보를 확인하여 브라우저가 "쿼크 모드"인지 확인할 수 있습니다.

를 사용하면 document.compatMode대부분의 브라우저에서 사용중인 모드를 알려줍니다.

에서 크롬, 사파리, 그리고 IE 주소 표시 줄에서이 자바 스크립트를 실행합니다 :

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

( javascript:최근 보안 변경으로 인해 검색 주소창에 붙여 넣은 후 부분 을 다시 입력해야합니다. )


JavaScript에서 렌더링 모드를 쿼리 할 수 있으므로 페이지에서 사용중인 렌더링 모드를 알려주 Bookmarklet 이있을 수 있습니다.

나는 이 렌더 모드 북마크발견했다 .

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에서 쿼크 모드를 강제합니다 (파일의 첫 줄이 선언이 아닌 경우 총 흔들림을 던집니다). 타입 / 쿼크의 빠른 목록은 여기 에서 찾을 수 있습니다

테스트를 위해 HTML에 다음 줄을 붙여보십시오 (매우 나쁜 자바 스크립트 동작은 여기에 전달됩니다-죄송합니다 ...

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

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

도움이 되었기를 바랍니다


IE에게 (doctype을 통해) 엄격해야한다고 말하면 페이지 중간에 마음이 바뀌지 않습니다.


쿼크 모드를 올바르게 이해하면 선언 된 doctype에 대해 유효성을 검사하지 않는 페이지는 쿼크 모드를 트리거하기에 충분하지 않습니다. 제대로 표시되지 않습니다.

다른 브라우저가 각 doctype을 처리하는 방법을 결정하기 위해 찾은 최고의 리소스는 here 입니다.


웹 개발자 툴바가 추가 된 Firefox의 경우 막대 오른쪽에있는 트리오 아이콘을 볼 수 있습니다. 가장 왼쪽에있는 모드가 어떤 모드인지 알려줍니다.


IE에서는 개발자 도구 (F12 키를 누름)에서 메뉴에 표시됩니다 : 문서 모드 : ... 그리고 다른 모드를 강제 할 수도 있습니다.


html5 페이지에서 " <!DOCTYPE html>"를 쓰면 페이지로 시작하여 document.compatMode = 'CSS1Compat'로 변경할 수 있습니다

참고 URL : https://stackoverflow.com/questions/627097/how-to-tell-if-a-browser-is-in-quirks-mode

반응형