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>
webbrowser 里的js函数和C#的函数互相调用方式的更多相关文章
- js实现类似于add(1)(2)(3)调用方式的方法
群里有人说实现类似add(1)(2)(3)调用方式的方法,结果马上有人回答: var add = function(a){ return function(b){ return function(c) ...
- js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)
js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...
- [转][C/C++]函数名字修饰(Decorated Name)方式
1.C/C++函数修饰名: 对于我们的C/C++源程序而言,函数名只是函数的一小部分,函数还有调用方式(参数入栈方式).返回值类型.参数个数和各参数类型等信息,对于C++类成员函数,还有更多信息.这些 ...
- js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)
js原生的url操作函数,完善的. /*****************************/ /* 动态修改url */ /*****************************/ var ...
- js里常用函数之高阶函数
高阶函数:将函数作为参数或者返回值的函数.将函数作为参数的用法通常称作回调函数,函数参数通常会在主函数被执行之后被高阶函数调用. 高阶函数的使用实例.可以把有相似操作的函数用一个高阶函数来重构,精简代 ...
- 原生JS写Ajax的请求函数
一.JS原生ajax ajax:一种请求数据的方式,不需要刷新整个页面:ajax的技术核心是 XMLHttpRequest 对象:ajax 请求过程:创建 XMLHttpRequest 对象.连接服务 ...
- 1. js数据类型_对象_函数_内存
1. js数据类型有哪些? 基本(值)类型 Number ---- 任意数值 String ---- 任意字符串 Boolean ---- true/false undefined ---- unde ...
- Js基础知识6-JavaScript匿名函数和闭包
匿名函数 1,把匿名函数赋值给变量 var test = function() { return 'guoyu'; }; alert(test);//test是个函数 alert(test()); 2 ...
- JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量
JS全局变量VAR和THIS 2011-05-23 21:43 很多人都觉得在JavaScript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在wi ...
随机推荐
- 1. nginx添加自定义http模块(简单)
步骤 1. 新建模块目录2. 添加模块配置文件3. 编写模块源码文件4. 在主配置文件中配置访问location5. 编译加入模块文件6. 测试 新建模块目录 mkdir /opt/nginx/ext ...
- JavaWeb基础-Jsp内置对象
request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应,它是HttpServlteRequest类的实例.Request对象具有请求域,即完成客户端 ...
- JAVA 平时作业二
编写一个 Java 应用程序,统计数组{1,3,4,7,2,1,1,5,2,5,7,2,1,1,3},统 计显示每种数字其出现的次数以及出现最多和最少次数的数字 public class Number ...
- ajax 提交form格式 和 json格式
json 格式 内容在body中 ajax设置 Content-Type: application/json 浏览器查看为 Request Payload The Request Payload ...
- jmeter之关联
前言:当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理,Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联. 一.后置处理器-------正则 ...
- 爬取QQ音乐歌手的歌单
import requests# 引用requests库res_music = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search ...
- 2019-04-25-day040-数据库的查询
内容回顾 数据的增删改查 插入数据 insert into 表 values (值1,值2...) insert into 表(指定字段名1,字段名2) values (值1,值2...) 删除数据 ...
- mongo常用sql
基本查询 db.getCollection('chdr').find({chdrnum:"test123456"}) lookup关联查询 db.getCollection ( ...
- 删除单链表节点,时间复杂度为O(1)
一个编程练习,删除单链表一个节点,且时间复杂度控制在O(1)内. 1.核心操作代码如下: struct ListNode { int m_data; ListNode *m_pNext; }; voi ...
- OFBiz项目简介
记得最早使用OFBiz是十年前在公司的一个EA游戏项目中,用来实现玩家在游戏中购买各种游戏装备.当由于自己刚出校门不久,经验也少,对软件产品架构.思想.目的了解不透彻,不明白OFBiz设计上的优点,本 ...