c#和javascript函数相互调用示例分享

在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。),可做如下设置:

[System.Runtime.InteropServices.ComVisible(true)]

例如:

代码如下:

[ComVisible(true)]
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

protected override void OnLoad(EventArgs e)
        {
            webBrowser1.ObjectForScripting = this;
            webBrowser1.Navigate("http://www.jb51.net");
            base.OnLoad(e);
        }
    }

如果要和JS通讯,使用webBrowser的Document对象的InvokeScript方法即可。

该方法签名如下:

InvokeScript(String spriteName,object[] args);

例如:

代码如下:

<scripttype="text/javascript">     //提供给c#调用的方法   
 function test(n,s){        
    alert(n+"/"+s);   
 }     //调用C#的方法    
function callCSharp(){         //这里可以看到window.external被设置成了什么       
 alert(window.external);       
 window.external.Test("hello",15);    
}
</script>
<button onclick="callCSharp()">call c#</button>

调用:web.Document.InvokeScript("test", new Object[] {1,"hello"});

(0)

相关推荐

  • C#的WEBBROWSER与JS交互小结

    本文实例总结了C#的WEBBROWSER与JS交互的方法.分享给大家供大家参考.具体实现方法如下: 一.实现WebBrowser内部跳转,阻止默认打开IE 1.引用封装好的WebBrowserLinkSelf.dll实现 复制代码 代码如下: public partial class MainWindow : Window {        private WebBrowser webBrowser = new WebBrowser();          public MainWindow()

  • C#通过html调用WinForm的方法

    本文实例讲述了C#通过html调用WinForm的方法.分享给大家供大家参考,具体如下: 完整测试代码: Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace test { [Syst

  • 浅谈C#下winform和JS的互相调用和传参(webbrowser)

    不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过messagebox的方法show出来.一步到位,winform调用JS函数和JS调用winform函数的方法都有了. C#的winform下代码如下: [System.Runtime.InteropServices.ComVisible(true)] public partial class Form1 : Form { public Fo

  • c#和javascript函数相互调用示例分享

    在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见.请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性.),可做如下设置: [System.Runtime.InteropServices.ComVisible(true)] 例如: 复制代码 代码如下: [ComVisible(true)]    public partial class

  • C 与 C++ 接口函数相互调用的实现

    一.C 或 C++ 编译的四个步骤 (一) 预处理 在该步骤中,编译器将源程序中以"#"开头的语句进行处理.其中,#include 的原理是将目标文件内容导入本文件. (二) 编译 在该步骤中,编译器将第一步生成的各个文件分别转换成汇编语言文件.在该过程中,所有函数的名称都会被转换成一个符号作为汇编文件中的唯一标识,对 C 语言函数一般直接用函数名称作为其唯一标识的符号,而对于 C++ 函数在多数情况下需要在函数名称加上各种前缀或后缀才能作为其标识,比如函数 void Print(in

  • JavaScript函数封装的示例详解

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,

  • .net中前台javascript与后台c#函数相互调用问题

    C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中;         2.在前台写一个js函数,内容为document.getElementById("

  • JavaScript函数的调用以及参数传递

    JavaScript 函数调用 JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象. Note 注意 this 是保留关键字,你不能修改 this 的值. 调用 JavaScript 函数 函数中的代码在函数被调用后执行. 作为一个函数调用 实例 function myFunction(a, b) { return a * b; } myFunction(10, 2)

  • js匿名函数的调用示例(形式多种多样)

    匿名函数就是没有实际名字的函数. javaScript的匿名函数形式多样,而且不搞清楚,容易看晕代码. 以下是成功调用的匿名函数: 复制代码 代码如下: (function () { alert(3); }) (); (function f1() { alert(4); })(); //不是匿名函数也能这样调用!! void function(){ alert('void water'); }();//据说效率最高,Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返

  • Objective-C 代码与Javascript 代码相互调用实例

    现在好的IOS 的 APP有时候会跟网页内容相关联,当然也是增加用户体验,及更好的,有效的体现APP 的功能. 由于本人在项目中会用到这部分功能,做下记录! JS调用OC 很多应用里面或多或少的调用了网页,来达到绚丽的效果,所谓的JS调用OC.....举个例子吧,网页上有个按钮 点击按钮跳转界面,跳转的动作由OC的代码实现. OC调用JS 还是举个例子,我们OC代码创建了输入框比如输入用户名,输入完成后显示在网页上,显示用户的用户名 一.利用webView的代理方法实现OC和JS的相互调用 创建

  • Python的净值数据接口调用示例分享

    代码描述:基于Python的净值数据接口调用代码实例 关联数据:净值数据 接口地址:https://www.juhe.cn/docs/api/id/25 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import urlencode #---------------------------------- # 净值数据调用示例代码 - 聚合数据 # 在线接口文档:http://www.juhe.c

  • 浅析JavaScript函数的调用模式

    我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分 函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式. 方法的调用模式:  var obj={ fun1: function(){ //方法内容 this; //指的是window } } obj.fun1() //方法的调用 构造器的调用: function Person(name, age, job){ this.name = name; this.age = age; this.job

  • kotlin和Java的相互调用示例详解

    前言 互操作就是在Kotlin中可以调用其他编程语言的接口,只要它们开放了接口,Kotlin就可以调用其成员属性和成员方法,这是其他编程语言所无法比拟的.同时,在进行Java编程时也可以调用Kotlin中的API接口. 1.在kotlin中调用Java方法 Kotlin和Java是两种不同的语言,所以在互相调用的时候,会有一些特殊的语法.kotlin中对象属性默认就带有setter和getter方法,所以在kotlin中调用Java时直接变量名点属性就可获取到属性的setter和getter的一

随机推荐