Я загружаю стороннюю веб-страницу, которая содержит следующий код
<script type="text/javascript">
onDomReady(function() { some_code1; });
</script>
в компонент WebBrowser. После выполнения some_code1
мне нужно выполнить некоторые манипуляции с Dom, которые сделают some_code1
недействительным. Вопрос в том, как определить, что some_code1
выполнено?
Не могу
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
DoRequiredManipulations();
}
Поскольку это событие произойдет до того, как some_code1
выполнится и сделает его недействительным.
Также я не могу сделать
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
web.Document.InvokeScript("doSome_code1");
DoRequiredManipulations();
}
Поскольку some_code1
объявлено как анонимная функция.
Кажется, что единственный способ сделать это - это:
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var script = GetScriptText(web.DocumentText);
//execute script in webbrowser
DoRequiredManipulations();
}
Проблема в том, что я не знаю, как выполнить этот скрипт в веб-браузере. Я пытался web.Navigate("javascript: " + script);
, но он не работает правильно.