Ausführen einer JavaScript-Funktion in einer Instanz von Internet Explorer

Ich bin mit

SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer()

Steuern/automatisieren eine Instanz von Internet Explorer. Auf bestimmten Seiten möchte ich ausführen einer JavaScript-Funktion (init()). Es scheint der beste Weg, dies zu tun, ist die Verwendung eines HtmlDocument's InvokeScript Methode und ich habe versucht, die folgenden mit kein Glück:

void ie_DocumentComplete(object pDisp, ref object URL)
{
  System.Windows.Forms.HtmlDocument doc = ie.Document;
  doc.InvokeScript("init");
}

Was nicht, weil doc null ist. Ich kann nicht scheinen, um eine System.Windows.Forms.HtmlDocument aus ie.Document. Neben den oben genannten, habe ich auch versucht:

System.Windows.Forms.HtmlDocument doc2 = (System.Windows.Forms.HtmlDocument)ie.Document;

und

System.Windows.Forms.HtmlDocument doc2 = ie.Document as System.Windows.Forms.HtmlDocument;

Irgendwelche Ideen auf, wie bekomme ich diese zu arbeiten - oder eine noch bessere Möglichkeit zum ausführen von Skripts auf der Seite?

Dank!!

BEARBEITEN:

Andere Weise zum ausführen einer JavaScript-Funktion zu sein scheint:

SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer()
mshtml.HTMLDocument doc = ie.Document;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript("init();", "javascript");

Aber die Linie

mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;

wirft eine Fehlermeldung, dass es einen ungültigen cast (InvalidCastException) - obwohl IntelliSense (und MSDN) sagen doc.parentWindow ist ein IHTMLWindow2. Irgendwelche Ideen? (Auch das habe ich gemacht, dass eine Seite vollständig geladen wurde, bevor Sie es ausführen, code)

InformationsquelleAutor Evan | 2010-08-18
Schreibe einen Kommentar