[erledigt] "HTMLImageElement is undefined" im WebBrowser-Control

TheBrainiac
Hi @ All!

Ich habe mal wieder ein Problem mit dem WinForms-WebBrowser.

Ich habe eine statische Html-Seite mit JavaScript (jQuery). Diese funktioniert im "normalen" IE perfekt. Wenn ich die Seite allerdings per myBrowser.DocumentText = myPageString in eine WebBrowser-Komponente lade, kommt folgender Fehler:

Fehlermeldung:
Script Error

HTMLImageElement is undefined

an folgender Stelle im java script:

Code:
1:
2:
3:
if (someVar instanceof HTMLImageElement) {
    // Foo Bar
}

Ist der WinForms-WebBrowser nicht der "normale" IE? Wenn doch, wie kann ich dem dann sagen, dass es gehen soll? Wenn nein, gleiche Frage...

Gruß, Christian.
MarsStein
Hallo,

Du kannst alternativ das Element nach seinem Namen fragen, etwa so (aus dem Stegreif, nicht getestet):

C#-Code:
if(("tagName" in someVar) && (someVar.tagName.toLowerCase() == 'img'))
{
  ...
}

Gruß, MarsStein
TheBrainiac
Ja klar, ich könnte das JavaScript ändern.

Das tut aber nichts zur eigentlichen Sache. Warum verhält sich der WinForms-WebBrowser (was ja imho nur ein "gehosteter" IE ist) anders als der installierte Internet Explorer? Wie kann ich das abstellen?

Gruß, Christian.
MarsStein
Hallo,

die WebBrowserkomponente läuft von Haus aus mit anderen Settings (IE7-Kompatibilitätsmodus). Schau mal in
 C# Web Browser component is IE7 not IE8? How to change this? und
 Regarding IE9 WebBrowser control ode  How to make c# WebBrowser equivalent to IE browser (letzteres bietet 'ne Menge Lesestoff, wenn man die Links verfolgt)

Gruß, MarsStein
TheBrainiac
Okay, danke schonmal.

Man kann wohl in der Registry verschiedene Werte verändern ( click), aber das verändert das Verhalten aller Instanzen des WinForms-WebBrowsers. Kann ich irgendwie nur meine eigene Instanz manipulieren?

Ausserdem beseitigt es leider nicht meinen Fehler...

Gruß, Christian.
TheBrainiac
[SARCASM]Arghhh

Ich kann gar nicht in Worte fassen, wie lieb ich den tollen Internet Explorer hab...[/SARCASM]


Die Lösung ist folgende (jedenfalls für mein Problem, nicht wie ich den IE dazu auffordere, bestimmte Settings anzunehmen):

Man bette folgendes meta-Tag in sein HTML ein (Quelle:  Regarding IE9 WebBrowser control) und zwinge den IE so, die Seite als IE9 darzustellen und nicht als IE5.5 im Quirks-Modus...

XML-Code:
<meta http-equiv="X-UA-Compatible" content="IE=9">

Gruß, Christian.