2012-03-13 92 views
2

我一直在想了好半天,甚至看着做到這一點:是否有可能在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

回答

1

如果你還可以控制你正在查看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

相關問題