MSIEs WebBrowser Steuerelement gehostet in WinForms-Anwendung läuft im Kompatibilitätsmodus
Frage
Ich bin Hosting MSIE in einer WinForms Form. Leider besteht darauf, es unabhängig im Kompatibilitätsmodus auf zu laufen, wenn ich ihm eine Seite, die Läufe in IE8-Modus in Stand-alone-IE geben. Der Effekt davon ist, dass einige Inhalte, die korrekt in Stand-alone-MSIE macht bekommen völlig falsch ausgerichtet und in der gehosteten Kontrolle vermasselte.
Neben Dokumenttyp usw., gibt es einige magische Art und Weise dem Web-Browser zu sagen, dass ich es der Seite auf die gleiche Weise machen will, als ob ich es in Stand-alone-MSIE geladen?
Ich möchte nicht den Registrierungsschlüssel Überschreibung verwenden ( http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx ) aufgrund meiner Form Teil sein ein Add-in für eine andere App. Ich will nicht das IE Verhalten für den Haupt-App ändern, und ich will sie nicht für andere Add-In ändern, unter dieser App läuft. Ich möchte nur diese an der Arbeit innerhalb des Browsers in gehosteten meine Form, nicht app-weit und nicht prozess breit.
Lösung
Ich habe nicht getestet, aber wie wäre es mit der META Tag, zusammen mit dem HTTP- EQUIV Attribut, um den X-UA-COMPATIBLE
Wert IE=8
, die den Web-Browser anweist, in IE 8 Standards Modus eine Seite anzuzeigen. Ein Beispiel wäre:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Von dieser Linie in dem folgenden Artikeln es scheint, dass dies funktionieren soll.
In der Standardeinstellung Hosting-Anwendungen des WebBrowser-Steuerelement geöffnet auf Standards basierende Seiten im IE7-Modus es sei denn, die Seite enthält ein geeignete X-UA-Compatible-Header. Sie können dies durch den Namen ändern Hinzufügen der Anwendung ausführbare Datei die FEATURE_BROWSER_EMULATION Funktion Steuerschlüssel und den Wert entsprechend an.
Andere Tipps
Um das Standardverhalten des Web-Browser-Kontrolle in der Anwendung ausgeführt wird entsprechend zu ändern, was IE selbst tut, müssen Sie die gesetzt FEATURE_BROWSER_EMULATION Feature Control Key.
Zum Beispiel können Sie imitieren IE8 Verhalten (so dass Websites in IE8-Standards-Modus machen) wie folgt.
Innerhalb HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Internet Explorer \ Main \ Featurecontrol
Erstellen Sie einen neuen Schlüssel mit dem Namen FEATURE_BROWSER_EMULATION
Innerhalb der Schlüssel, einen neuen REG_DWORD mit Mehrwert 8000 mit dem Namen Ihrer Anwendung ausführbare Datei. Z.
"YourApp.exe" = dword 8000 (Hex: 0x1F40)
Weitere Informationen unter: http: // blogs. msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx