zoukankan      html  css  js  c++  java
  • C# webBrowser(wpf/winform) 互调js

    1.winform

    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [ComVisible(true)]
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    this.Load += Form1_Load;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    webBrowser1.ObjectForScripting = this;//具体公开的对象,这里可以公开自定义对象
    webBrowser1.Navigate(Application.StartupPath + "/dom.html");
    }

    private void button1_Click(object sender, EventArgs e)
    {
    webBrowser1.Document.InvokeScript("Run", new object[] { "test" });
    }

    public void ShowMsg(string msg)
    {
    MessageBox.Show(msg);
    }

    }

    2.wpf


    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    this.Loaded += MainWindow_Loaded;
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
    this.webBrowser1.ObjectForScripting = new OprateBasic();
    Uri uri = new Uri(@"pack://application:,,,/dom.html");
    Stream source = Application.GetResourceStream(uri).Stream;
    webBrowser1.NavigateToStream(source);
    }

    private void btn1_Click(object sender, RoutedEventArgs e)
    {
    webBrowser1.InvokeScript("Run", new object[] { "test" });
    }
    }

    [ComVisible(true)] // 将该类设置为com可访问
    public class OprateBasic
    {
    public void ShowMsg(string msg)
    {
    MessageBox.Show(msg);
    }
    }

    dom.html

    <!DOCTYPE html>

    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta charset="utf-8" />
    <title></title>
    </head>
    <body>
    <script type="text/javascript" charset="utf-8">
    function Run(str) {

    window.external.ShowMsg(str);
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    每日总结
    体温登记app(大年初一要收的作业)慢慢更,这个写完了
    2021/01/31周学习总结
    2021/01/24周学习总结
    从小工到专家
    构建之法阅读笔记
    2021/01/17周学习总结
    人月神话阅读笔记
    利用Word制作Kindle用的6寸PDF电纸书
    面试题-谈谈封装和抽象的区别(转)
  • 原文地址:https://www.cnblogs.com/Logan626/p/5333328.html
Copyright © 2011-2022 走看看