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>

webbrowser 里的js函数和C#的函数互相调用方式的更多相关文章

  1. js实现类似于add(1)(2)(3)调用方式的方法

    群里有人说实现类似add(1)(2)(3)调用方式的方法,结果马上有人回答: var add = function(a){ return function(b){ return function(c) ...

  2. js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)

    js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...

  3. [转][C/C++]函数名字修饰(Decorated Name)方式

    1.C/C++函数修饰名: 对于我们的C/C++源程序而言,函数名只是函数的一小部分,函数还有调用方式(参数入栈方式).返回值类型.参数个数和各参数类型等信息,对于C++类成员函数,还有更多信息.这些 ...

  4. js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)

    js原生的url操作函数,完善的. /*****************************/ /* 动态修改url */ /*****************************/ var ...

  5. js里常用函数之高阶函数

    高阶函数:将函数作为参数或者返回值的函数.将函数作为参数的用法通常称作回调函数,函数参数通常会在主函数被执行之后被高阶函数调用. 高阶函数的使用实例.可以把有相似操作的函数用一个高阶函数来重构,精简代 ...

  6. 原生JS写Ajax的请求函数

    一.JS原生ajax ajax:一种请求数据的方式,不需要刷新整个页面:ajax的技术核心是 XMLHttpRequest 对象:ajax 请求过程:创建 XMLHttpRequest 对象.连接服务 ...

  7. 1. js数据类型_对象_函数_内存

    1. js数据类型有哪些? 基本(值)类型 Number ---- 任意数值 String ---- 任意字符串 Boolean ---- true/false undefined ---- unde ...

  8. Js基础知识6-JavaScript匿名函数和闭包

    匿名函数 1,把匿名函数赋值给变量 var test = function() { return 'guoyu'; }; alert(test);//test是个函数 alert(test()); 2 ...

  9. JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量

    JS全局变量VAR和THIS 2011-05-23 21:43 很多人都觉得在JavaScript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在wi ...

随机推荐

  1. ASP中替换掉换行符<br>

    function HtmlStrReplace(Str)  if Str="" or isnull(Str) then    HtmlStrReplace="" ...

  2. MySQL简单的查询语句

    1.查询特定列:select 列名 from 表名:(必须先进入数据库)或者 select 列名 from 数据库.表名: 2.查询多个列:select 列1,列2,... from 表名: 3.除去 ...

  3. pdf.js使用总结#如何在网页读取并显示PDF格式文档

    pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,一个负责API解析,一个负责核 ...

  4. 斐讯K2 22.5.9固件刷华硕固件实测教程

    斐讯K2最新的固件是V22.5.9.163这个版本是锁死了,不能刷机的,而且不能降级到原来的可以刷机的老版本固件,也就不能刷第三方固件了,怎么破呢?下面就教大家怎么降级刷机到V22.4.2.8固件.  ...

  5. 【转】Android-Input 键盘设备

    https://source.android.com/devices/input/keyboard-devices 键盘设备 Android 支持各种键盘设备,包括特殊功能小键盘(音量和电源控制),紧 ...

  6. 测试工具安装(JMeter,Postman)

    Jmeter的安装依赖Java环境,所以必须安装JDK(1.8版本以上的),与JRE集成安装.记得配置环境变量.(5H) Postman,我安装的windows64的,直接在官网下载就好了.不需要在c ...

  7. sql注入练习,sqli-labs writeup

    一.Less-1 1.判断是否存在注入 URL中输入“?id=1”,发现回显有变化,说明存在注入: 2.判断闭合字符,注释后面的内容 输入“   ?id=1'  ”,回显为  "1" ...

  8. Linux查看服务器配置

    服务器型号 [root@txs ~]# dmidecode|grep "System Information" -A9|egrep "Manufacturer|Produ ...

  9. Java 8 Lambda 表达式(一)

    Java 8 新特性 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lambda 表 ...

  10. SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式

    自定义主键生成策略 在entity类上添加注解 @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "custom ...