是否有可能在WebBrowser中获得后JavaScript参考?

问题描述:

我一直在想了好半天,甚至看着做到这一点:是否有可能在WebBrowser中获得后JavaScript参考?

C# WebBrowser control -- Get Document Elements After AJAX?

没有运气。

基本上,我需要与运行时使用JavaScript在网页上生成的元素进行交互。如你所知,当你在运行时使用javascript生成一个元素时,它不会显示在“查看源代码”中,因此当我请求WebBrowser.DocumentText时它不显示。

我确定有一种方法可以做到这一点,但是这里没有任何信息。

有人能破冰,告诉我该怎么做吗?

感谢

+0

您是否使用其他Web浏览器控件进行了认证,例如:http://awesomium.com /#关于 – Robar 2012-03-13 12:06:08

+0

我可以,但我将不得不从头开始重新启动我的程序。使用WebBrowser没有办法做到这一点吗? – TheGateKeeper 2012-03-13 12:10:26

如果你还可以控制你正在查看WebBrowser控件中的网页,那么你可以公开的JavaScript方法,返回你所需要的,并使用Document.InvokeScript摆脱JavaScript方法的值。

C#:

object value = this.WebBrowser1.Document.InvokeScript("getValue"); 

的JavaScript:

function getValue() { 
    var editor = iged_getById("<%=WebHtmlEditor1.ClientID %>"); 
    return editor.getText(); 
} 

如果不通过网络进行现场控制,那么你可以与网页的文档通过文档属性作为互动是一个代表HtmlDocument的.NET对象: http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx

+0

我已经离开了WebBrowser控件,因为当需要与网页进行广泛的交互时,它非常具有bug和hacky。我现在使用原始请求。不过,我认为你可以通过使用DomDocument而不是Document来获得JavaScript引用。 – TheGateKeeper 2012-05-04 23:03:15