从C#调用WebBrowser控件中的JavaScript

时间:2009-12-26 15:13:55

标签: c# javascript

例如: 1)在webBrowser1页面中加载了index.html。 2)此页面包含以下代码:

...
<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 / Opera / FF什么都没有......

1 个答案:

答案 0 :(得分: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();

这将执行类似于用户点击浏览器中链接的点击,我想这是你想要完成的事情(?)。