ブラウザが“奇癖”にあるかどうかを確認する方法モード?

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

  •  06-07-2019
  •  | 
  •  

質問

比較的厳格な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でレンダリングモードを照会できるので、ブックマークレットを持つことができますは、ページが使用しているレンダリングモードを示します。

このレンダリングモードブックマークレットが見つかりました私にとってはうまくいく:

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で強制モードを強制します&amp; 7(実際にはエラーを示していないにもかかわらず)(ファイルの最初の行が宣言ではない場合に、完全にぐらついているだけです)。 タイプ/癖の簡単なリストは、こちら

にあります。

テストのためにHTMLに次の行を貼り付けてみてください(非常に悪いjavascriptの振る舞いがここに渡されています-申し訳ありませんが、これは絶対に公開しないでください:)

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

IEに(doctypeを介して)厳密であるべきだと伝えると、ページの途中で気が変わりません。

quirksモードを正しく理解している場合、宣言されたdoctypeに対して検証しないページは、quirksモードをトリガーするには不十分です。正しく表示されません。

さまざまなブラウザが各doctypeを処理する方法を決定するために見つけた最良のリソースは、こちらです。

Web Developer Toolbarアドオンを備えたFirefoxの場合、バーの右側にある3つのアイコンを見ることができます。左端には現在のモードが表示されます。

IEでは、開発者ツール(F12を押す)に表示され、メニューに次のように表示されます:ドキュメントモード:... また、そこで別のモードを強制することもできます。

html5ページで、&quot; &lt;!DOCTYPE html&gt; &quot;と記述します。ページで始まるはに変更することができます document.compatMode = 'CSS1Compat'

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top