C# 实现WebBrowser(WebView)控件与页面js交互
环境
- .NET Framework 4.5
- Windows窗体应用(非WPF)
引用WebBrowser控件
在工具箱中选中WebBrowser并拖拽到Form中
若工具箱内找不到WebBrowser控件,则在工具箱内单击鼠标右键,选择“选择项”
在.NET Framework 组件选项卡中搜索并选中WebBrowser
向WebBrowser 插入html
方法一:
webBrowser1.Navigate(url);
方法二:
webBrowser1.DocumentText = "hello world";
WebBrowser 调用JS
js in web
webBrowser1.DocumentText = "<script>function Messageaa(message){alert(message);}</script>hello world";
c#
this.webBrowser1.Navigate("javascript:Messageaa('hello');");
JS访问C#方法(无需设置使程序集COM可见)
1,新建c#类,以接收js调用
[System.Runtime.InteropServices.ComVisible(true)]
public class ScriptEvent
{
//供JS调用
public void ShowMessage(string message)
{
MessageBox.Show(message);
}
}
2,将该class实例化并传给webBrowser
webBrowser1.ObjectForScripting = new ScriptEvent();
3,js调用
<script>
window.external.ShowMessage('hello');
</script>