c# - 如何从托管 Web 浏览器控件的应用程序调用 Web 浏览器控件查看的页面中的 JavaScript 函数?

标签 c# javascript webbrowser-control

我已经创建了一个 C# 桌面应用程序,它依赖于网络爬虫的想法。

我使用 Web 浏览器控件制作我的应用程序以打开网站并以编程方式登录并重定向到具有 gridview 的特定页面,其中包含我想要收集的所有用户数据...

但这里的问题是 JavaScript 函数触发的 gridview 点击中的用户名。我知道它的名字,但不知道如何在桌面应用程序中调用它。

允许我这样做的 namespace 或 DLL 是什么?

最佳答案

我认为这应该能帮到你:

http://www.west-wind.com/WebLog/posts/493536.aspx

编辑:基于该链接,这里有一个小示例应用程序。将按钮和 WebBrowser 控件添加到 Windows 窗体并添加以下代码:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.webBrowser1.DocumentText = @"<html>
<body>
<script type = ""text/javascript"">
function ShowMessage(text) {
   alert(text);
}
</script>
</body>
<input type=""button"" onclick=""ShowMessage('From JavaScript')"" value=""Click me""/>
</html>";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.webBrowser1.Document.InvokeScript("ShowMessage",new object[]{"From C#"});
        }
    }

如果您在浏览器中单击该按钮,它将显示 javascript 消息,如果您在 Windows 窗体中单击该按钮,它将显示 C# 消息。

关于c# - 如何从托管 Web 浏览器控件的应用程序调用 Web 浏览器控件查看的页面中的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1039113/

相关文章:

javascript - imacros 复制文本列表并在 wordpress 上使用复选框粘贴

internet-explorer - MFC:IInternetProtocolSink 无法识别 MIME 类型 "text/css"

c# - Extender Provider 未能返回 Extender

c# - 跳跃比。重力

javascript - Chrome 开发人员工具 - 如何找到定义控制台中显示的变量的源

c# - 从 WebBrowser 控件中删除边框

c# - WPF 浏览器控件滚动位置

c# - 如何在 C# 中使用开放式硬件监视器源代码?我试过任何方法都不行

c# - 防止文本框覆盖以前的数据

javascript - 当项目中不包含node_modules文件夹时,Node.js在哪里搜索模块?