zoukankan      html  css  js  c++  java
  • webbrowser 里的js函数和C#的函数互相调用方式

    1.c#程序里要添加  [System.Runtime.InteropServices.ComVisibleAttribute(true)] 和  webBrowser1.ObjectForScripting = this;

    位置:

       
        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
        public partial class Form1 : Form
        {      
            public Form1()
            {
                InitializeComponent();
                refresh();
                string path1 = System.Windows.Forms.Application.StartupPath + @"" + "PlanMngPage" + @"home.htm";
                webBrowser1.Navigate(new Uri(path1));
                webBrowser1.ObjectForScripting = this;
            }
     public void MyMessageBox(string message)
            {
                MessageBox.Show(message);
            }

    2.在JS使用 window.external.引用的窗体的函数();   来引用C#里的函数

      eg:

      <body  onload="window.external.MyMessageBox('javascript访问C#代码')">

    出处:https://blog.csdn.net/gsch_12/article/details/52224454

    再给出一个在C#中调用JS的方法

      private void button1_Click_1(object sender, EventArgs e)
            {
    
                if (webBrowser1.Document.GetElementById("a") != null)
                {
                    HtmlElement element = webBrowser1.Document.GetElementById("a");
                    element.SetAttribute("value", textBox1.Text);
                    //textBox1.Text = element.GetAttribute("value");
                }
    
    
                webBrowser1.Document.InvokeScript("tt", new object[] { "顶一个" });
    
            }

    html代码:

    <body>
        <input type="text" id="a" />
        <br />
        <input type="button" id="btn" value="test" onclick="tt('haha')" />
        <br />
        <input type="button" id="btn" value="test C#" onclick="Run('--C#')" />
    </body>
    
    <script>
        function tt(obj) {
            alert("hello:" + obj);
        }
    </script>
    <script type="text/javascript" charset="utf-8">
        function Run(str) {
            window.external.ShowMsg(str);
            //alert(str);
        }
    </script>
  • 相关阅读:
    js将单个反斜杠转化为斜杠的问题
    HTML提供的6种空格
    JavaScript 内存管理
    JavaScript:4个常见的内存泄露
    正则多种匹配描述
    css3图片展示方式
    动态规划篇一:初见动态规划
    小球下落(Dropping Balls, Uva 679)
    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)
    铁轨(rails, ACM/ICPC CERC 1997,Uva 514)
  • 原文地址:https://www.cnblogs.com/mq0036/p/10650809.html
Copyright © 2011-2022 走看看