比較的厳密なdoctypeとHTMLマークアップを備えたページに準拠していると仮定しますが、いくつかの馬鹿げた方法で見逃している可能性があります。管理システムまたはコンテンツ管理システムのテーマ。基本構造を制御し、JavaScriptを必要としますが、ページに入る他のすべてについては責任を負いません。
ブラウザがより標準に準拠したエンジンを使用するのではなく、「奇抜」モードに移行することを決定した場合、どのように伝えることができますか(または何を決定しますか)。
IE、Chrome、Safari、Firefoxはもちろんすべて異なる方法で処理するため、主要なブラウザーごとに回答を探しています。 1つのエラーでそれを強制するのに十分ですか、それとも余裕がありますか?
FirefoxおよびOperaでは、ページ情報を確認することで、ブラウザが「互換モード」になっているかどうかを判断できます。
document.compatMode
を使用すると、ほとんどのブラウザで現在のモードがわかります。
Chrome、Safari、およびIEで、アドレスバーで次のjavascriptを実行します。
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.');
「1つのエラーでそれを強制するのに十分ですか、それとも余裕がありますか?」という実際の具体的な質問に対する完全な回答。それは完全にエラーに依存しているということです。例えば、
<!-- 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を見つけることができます here
テスト用にHTMLに次の行を貼り付けてみてください(非常に悪いjavascriptの動作はここで伝えています-申し訳ありませんが、これは絶対に公開しないでください:)
<a href="javascript:alert(document.compatMode);">What mode am I?</a>
http://www.quirksmode.org/css/quirksmode.html によると:「問題は、quirksモードで記述された一部のページにdoctypeがあったということでした。したがって、各ブラウザにはdoctypeを持つ独自のリストがあります。これらのリストの概要については、このブラウザー比較チャートを参照してください: http://hsivonen.iki.fi/doctype/ "
お役に立てれば
IE Doctypeを介して)厳密であるべきだと伝えた場合、ページの途中で気が変わることはありません。
Quirksモードを正しく理解している場合、宣言されたdoctypeに対して検証しないページは、quirksモードをトリガーするには不十分です。正しく表示されません。
異なるブラウザが各Doctypeを処理する方法を決定するために私が見つけた最良のリソースは、 here です。
Web Developer Toolbarアドオンを備えたFirefoxの場合、バーの右側にある3つのアイコンを見ることができます。左端には、現在のモードが表示されます。
IE開発者ツール(F12を押す)で表示されます。メニューに次のように表示されます:ドキュメントモード:...また、別のモードを強制することもできます。
html5ページで、「<!DOCTYPE html>
"ページで開始はdocument.compatMode = 'CSS1Compat'に変更できます