2009-12-26 76 views
1

例如: 1)在webBrowser1頁面index.html中加載。 2)本頁面有以下代碼:從C#中的WebBrowser控件調用JavaScript#

... 
<a id="activity_text" href="#" onclick="activity_editor.show();return false;">now status</a> 
... 

3)我可以在程序的方式來改變「現在狀態」?

我試過這樣:

HtmlElement collH1 = document.GetElementById("activity_text"); 
collH1.InnerText = "new status"; 

但這種方式只適用於控制webBrowser1。 如果然後才能通過IE瀏覽器/歌劇/ FF已經變化的沒啥好看......

+0

你想達到什麼目的? – 2009-12-26 15:30:06

+0

要更改值「現在狀態」,以便它在服務器上有所變化 – Dobermann 2009-12-26 15:34:07

+0

請澄清以下語句:'如果然後通過IE/Opera/FF來查看變化不大的任何內容......'。你是否試圖讓文本在服務器上更改,而不僅僅是在Web瀏覽器控件中更改? – 2009-12-27 12:21:21

回答

1

如果您使用System.Windows.Forms.WebBrowser:

HtmlElement collH1 = document.GetElementById("activity_text"); 
object obj = collH1.DomElement; 
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click"); 
mi.Invoke(obj, new object[0]); 

如果您使用MSHTML :

HtmlElement collH1 = document.GetElementById("activity_text"); 
mshtml.HTMLAnchorElement el2 = (mshtml. HTMLAnchorElement)collH1.DomElement; 
el2.click(); 

這將執行一個類似於用戶點擊瀏覽器中的鏈接的點擊,我猜是你想完成(?)。