Ich lade eine Webseite eines Drittanbieters, die folgenden Code enthält:
onDomReady(function() { some_code1; });
in das WebBrowser-Komponente. Nachdem some_code1
ausgeführt wurde, muss ich einige Manipulationen mit dem Dom durchführen, die some_code1
ungültig machen. Die Frage ist, wie kann ich feststellen, dass some_code1
ausgeführt wurde?
Ich kann nicht folgendes machen:
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
DoRequiredManipulations();
}
Da dieses Ereignis vor der Ausführung von some_code1
stattfindet und es ungültig macht.
Außerdem kann ich nicht folgendes machen:
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
web.Document.InvokeScript("doSome_code1");
DoRequiredManipulations();
}
Da some_code1
als anonyme Funktion deklariert ist.
Es scheint, dass der einzige Weg ist, dies zu tun:
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var script = GetScriptText(web.DocumentText);
// Skript im Webbrowser ausführen
DoRequiredManipulations();
}
Das Problem ist, dass ich nicht weiß, wie ich dieses Skript im Webbrowser ausführen kann. Ich habe es mit web.Navigate("javascript: " + script);
versucht, aber es funktioniert nicht korrekt.