编程与开发,写代码也是一种创作方式

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>