IE8 WebBrowserコントロールでプログラムによって癖モードをオフにする方法は?
質問
IE#をC#アプリケーションのWebBrowserコントロールとして使用したい。 <!> quot; quirksモード<!> quot;を無効にするにはどうすればよいですか? IEを標準に準拠させる(実装されている限り)?
解決
あなたが直面している問題は、 IEBlog:IE8のWebBrowserコントロールのレンダリングモード:
ウェブマスターは簡単に変更できますが で適切にレンダリングするサイト IEの新しいバージョン、多くのソフトウェア ベンダーにはリソースがありません の新しいバージョンを即座にプッシュ 更新されたアプリケーション 内部ページ。 これらが存在することを保証するために アプリケーションは正常に機能し、 IE8は、実行中のページをレンダリングします 内のWebBrowserコントロールのインスタンス デフォルトではIE7標準モード。
ここで、ページのコメントは上記が間違っていると言っており、<!> quot; IE8は、デフォルトでIE7 StrictモードまたはQuirksモードのWebBrowserコントロールのインスタンス内で実行中のページをレンダリングします、ページのDoctypeに依存します。<!> quot;
解決策は次のとおりです。
実行可能ファイルがインスタンスをロードするとき スキャンするWebBrowserコントロールの かどうかを確認するレジストリ 実行可能ファイルがIE7標準またはIE8を必要としている 標準モード。
...
IE8標準モードの挿入で実行するには 次のレジストリ値:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]
"MyApplication.exe"=dword:13880
これらのインスタンスの両方で、 MyApplication.exeを置き換える必要があります 実行可能ファイルの名前 でWebBrowserコントロールを実行します 指定されたモード。
つまり、<!> quot; programmatic <!> quot;解決策は、特定のアプリケーションのWebBrowser
コントロールにIE8標準モードが必要であることを示すキーをレジストリに書き込むことです。
他のヒント
レジストリキーの手法を使用したくない場合は、次のタグを挿入できます。
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<!> quot; content <!> quot;属性はさまざまなモードでのレンダリングを強制します。
私が最後に聞いたのは、IE8がデフォルトの標準モード。最新のベータ版に実際の問題がありますか?ユーザーが互換表示ボタン?
ベータ以降、レジストリキーの名前が変更されたなど、いくつかの変更があったことに注意してください。詳細はこちら。
これにはプログラムでこれを行う実際のコードがあり、これまでのところIE11まで処理します。