Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   IE10: Quirks-Modus verlassen (https://www.delphipraxis.net/174637-ie10-quirks-modus-verlassen.html)

Caps 2. Mai 2013 14:00

IE10: Quirks-Modus verlassen
 
Schönen Nachmittag,

wie verlasse ich programmatisch den Quirks-Modus des IE10, wenn ich ihn per TWebBrowser in mein Programm eingebunden habe?

Lt. http://www.delphipraxis.net/132431-twebbrowser-ie8.html existiert ein Schlüssel, der in der Registry angelegt werden muss, damit das klappt.
Da es nicht klappte, würde ich http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx nun eher Glauben schenken, auch wenn ich nicht weiß, ob ich richtig verstanden habe, dass der Registry-Wert FEATURE_NATIVE_DOCUMENT_MODE ersatzlos entfällt (:?:).

Doch anders gefragt: was kann ich tun? Ich habe gemerkt, dass ein JS-Fehler ("Mitglied nicht gefunden") auftritt, wenn ich den IE10 in die Kompatibilitätsansicht (das ist doch der Quirks-Mode, gel?) schalte; selbiger Fehler tritt auch in meinem Programm auf, in dem ich den TWebBrowser verwende. Ich muss also in meinem Programm den Quark-Modus verlassen - nur wie?

Herzlichen Dank im Vorraus für irgendwelche Vorschläge!

lg Caps

jaenicke 2. Mai 2013 15:21

AW: IE10: Quirks-Modus verlassen
 
Kompatibilitätsansicht heißt nicht automatisch Quirks-Mode. Das kann auch der IE9 Modus standardkonform sein. Und der TWebBrowser nimmt nicht unbedingt die aktuelle Version. Im IE 10 siehst du in der Debugansicht (F12) auch in welchem Modus sich der Browser befindet.

Wenn der Browser in den Quirksmodus geht, heißt das, dass ein Fehler auf der Seite vorliegt, diese also nicht sauber programmiert ist. Den kann man AFAIK dann auch nicht wieder verlassen, außer indem man die Seite korrigiert.

Wenn du den Fehler dort reproduzieren kannst, solltest du doch aber den auf der Seite beheben können, oder?

Der schöne Günther 2. Mai 2013 15:22

AW: IE10: Quirks-Modus verlassen
 
Alternativ kann die Seite doch auch explizit durch irgendwelche Meta-Tags einen speziellen IE-Dokument-Modus anfordern, oder?

Phoenix 2. Mai 2013 16:20

AW: IE10: Quirks-Modus verlassen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1213846)
Alternativ kann die Seite doch auch explizit durch irgendwelche Meta-Tags einen speziellen IE-Dokument-Modus anfordern, oder?

Prinzipiell ja, aber der Browser muss sich nicht unbedingt dran halten.

Der IE ab dem 8er schalten z.B. bei Intranet seiten (also Seiten aus der Intranet-Zone) IMMER in den Compatibility-Mode. Localhost zählt hier übrigens zur Intranet-Zone.

Das lässt sich auch nicht wirklich durch Meta-Tags oder HTTP-Header verhindern, sondern jeder IE-User muss bei sich die Einstellung in den Compatibility Mode Settings umstellen. Und das greift dann wieder für die gesamte Zone, also nicht nur bestimmte Hosts oder Seiten.

Caps 3. Mai 2013 08:49

AW: IE10: Quirks-Modus verlassen
 
Danke an euch drei!

Das HTML der Seite kann ich leider nicht ändern (ist nicht unsere). Ich habe aber gemerkt, dass mit dem Registry-Schlüssel FEATURE_BROWSER_EMULATION (<meinProgramm.exe> = 8888 (erzwingt IE8-Modus)) zumindest der urspr. Fehler nicht mehr auftritt, wenngleich dafür jetzt ein anderer passiert (da muss ich schauen)...
Im Browserdebugger gibt es den Unterschied zwischen Browsermodus (= IE10) und Dokumentenmodus (= IE7-Standards) - was bedeutet das?
Schätze, ich muss wohl noch eine Weile experimentieren...

lg Caps

Der schöne Günther 3. Mai 2013 09:17

AW: IE10: Quirks-Modus verlassen
 
Den Unterschied zwischen Browser- und Dokumentmodus habe ich ehrlich gesagt auch nie verstanden. "Dokument" bezieht sich wahrscheinlich auf die reine grafische Ausgabe, also wie welche HTML- und CSS-Attribute umgesetzt werden, Browsermodus betrifft wahrscheinlich JavaScript und ähnliches...

Caps 3. Mai 2013 11:05

AW: IE10: Quirks-Modus verlassen
 
Es gibt da die verschiedenen Werte 7000 .. 9999 für IE7-Mode bis ForcedIE9-Mode.
Ich bräuchte quasi - soweit ich verstanden habe - den Forced-IE10-Mode. Kennt jemand den Code schneller als ich ihn ergoogelt habe? :snowball:

lg Caps

Edit:

Da sind se: http://msdn.microsoft.com/en-us/libr...wser_emulation

jaenicke 3. Mai 2013 11:28

AW: IE10: Quirks-Modus verlassen
 
Zitat:

Zitat von Caps (Beitrag 1213938)
Im Browserdebugger gibt es den Unterschied zwischen Browsermodus (= IE10) und Dokumentenmodus (= IE7-Standards) - was bedeutet das?

Browsermodus:
Als welcher Browser soll das Dokument geladen werden, also welche Browserengine

Dokumentenmodus:
Standardkonform oder Quirks, aber mit der ausgewählten Engine

Caps 3. Mai 2013 15:33

AW: IE10: Quirks-Modus verlassen
 
Ah, dann gibt es (wie ich im Browserdebugger sehe) die Browsermodi {7..10 sowie 10-Kompatibilitätsansicht} + die Dokumentenmodi {5..9, sowie Standards und Quirks}. Das ist ja total irre.

Ich habe jetzt erstmal den Erfolg gehabt, dass die Einstellung
...\FEATURE_BROWSER_EMULATION\meineApplikation: REG_DWORD = 10001 (dezimal)
dafür sorgt, dass der Fehler ("Mitglied nicht gefunden") im Browsercontrol nicht mehr auftritt, allerdings sieht der Inhalt von innerHTML jetzt ganz anders aus als im IE8, d.h. innerHTML wird anscheinend nicht mehr automatisch auf eine gewisse Weise formatiert und execScript() funktioniert nicht mehr... :kotz:
Ich habe jetzt erstmal ein schönes Wochenende. Schluss. :thumb:

Grüße
Caps


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz