【问题标题】:Calling JavaScript in a WebBrowser control from C#从 C# 在 WebBrowser 控件中调用 JavaScript
【发布时间】:2009-12-26 15:13:54
【问题描述】:

例如: 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 什么都没有...

【问题讨论】:

  • 你想达到什么目的?
  • 更改值“现在状态”,使其在服务器上有所变化
  • 请澄清以下声明:If then to come to look through IE/Opera/FF that has varied of nothing...。您是否试图让文本在服务器上更改,而不仅仅是在您的网络浏览器控件中?

标签: c# javascript


【解决方案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();

这将执行类似于用户在浏览器中单击链接的点击,我猜这就是您想要完成的(?)。

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2015-01-30
    • 2020-05-18
    • 2012-10-26
    相关资源
    最近更新 更多