C# 中,如何在WebBrowser和窗体之间进行交互?
C#中webbrowser与javascript(js)交互的方法
https://blog.csdn.net/yi412/article/details/69568885
在WebBrowser网页中,调用C# 窗体中的代码。
首先,要打开解决方案资源管理器,在项目上单击鼠标右键,选择属性打开项目属性设置。在应用程序选项卡中点击程序集信息,然后勾选“使程序集COM可见”。
当然,也可以在窗体class定义前面添加一行代码:
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
其次,要在窗体启动的时候初始化WebBrowser控件,设置控件的脚本COM对象为窗体本身:
webBrowser1.ObjectForScripting = this;
之后,就可以在窗体中写上需要被调用的代码了,例如写上一个函数试试:
public void test(string url) // C# 窗体中的代码
{
MessageBox.Show(url);
}
在网页中,就可以用 window.external.test(src); 来调用了。
首先在网页js中定义被c#调用的方法:
function Messageaa(message)
{
alert(message);
}
在c#调用js方法Messageaa
private void button1_Click(object sender, EventArgs e)
{
// 调用JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "c#diao javascript";
webBrowser1.Document.InvokeScript("Messageaa", objects);
}