今天在做一个项目的时候需要用c#搞一个webbrowser,然后有些地方还需要与js交互。所以就查了一下资料,发现很多博客提到了但是却没有说下具体的操作。所以我就写一下.

开发环境是Visual Studio 2008 .阅读此文需要有C#和javascript开发基础。

1.首先新建一个项目,在默认窗体form1上拖拽一个webbrowser1.

2.给form1的Load时间事件添加如下代码:

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.ObjectForScripting = this;
}

3.打开解决方案资源管理器,在项目上单击鼠标右键,选择属性打开项目属性设置。

4.在应用程序选项卡中点击程序集信息,然后勾选“使程序集COM可见”。

做完这些基本的设置之后就可以让webbrowser和js交互了,交互方法如下:

C#调用js函数的方法:

首先在js中定义被c#调用的方法:
function Messageaa(message)
{
alert(message);
}
在c#调用js方法Messageaa
private void button1_Click(object sender, EventArgs e)
{
// 调用JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "c#diao javascript";
webBrowser1.Document.InvokeScript("Messageaa", objects);
}

用JS调用C#函数的方法:

首先在c#中定义被js调用的方法:
public void MyMessageBox(string message)
{
MessageBox.Show(message);
} 在js中调用c#方法:
<!-- 调用C#方法 -->
<button onclick="window.external.MyMessageBox('javascript访问C#代码')" >
javascript访问C#代码</button>

C#中webbrowser与javascript(js)交互的方法的更多相关文章

  1. Android中使用WebView与JS交互全解析

    1.概述首先,需要提出一个概念,那就是hybrid,主要意思就是native原生Android和h5混合开发.为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,An ...

  2. WebView中Java与JavaScript的交互

    原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 开发过程中 WebView 的使用比较广泛,常用来加载网页,比如使用 WebView 加载新闻页面.使用 WebView 打 ...

  3. Android中Java与JavaScript之间交互(转)

    Android代码: package com.fyfeng.testjavascript; import android.app.Activity; import android.content.In ...

  4. iOS javascript js 交互

    //JS里的一个回调.比如网页上的某个按钮点一下之后.JS会调用setKey这个方法. JSContext *context1 = [self.startView valueForKeyPath:@& ...

  5. javascript; JS版HtmlEncode方法,结果与C#中HttpUtility.HtmlEncode方法一样。

    <script type="text/javascript"> function HTMLEncode(html) { var temp = document.crea ...

  6. iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法

    ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...

  7. iOS中动态注入JavaScript方法。动态给html标签添加事件

    项目中有这样一种需求,给html5网页中图片添加点击事件,并且弹出弹出点击的对应的图片,并且可以保持图片到本地 应对这样的需求你可能会想到很多方法来实现. 1. 最简单的方法就是在html5中添加图片 ...

  8. OC和JS交互的三种方法

    看简书上说一共有六种OC和JS交互的方法,但是前三种原理都一致,都是通过检测.拦截Url地址实现互相调用的.剩下的react native等第三方框架原理不一样,也没有去研究,下边记录我使用的三种方法 ...

  9. iOS JS 交互之利用系统JSContext实现 JS调用oc方法

    ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的, ...

随机推荐

  1. Integer Game(UVA11489)3的倍数

    K - Integer Game Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Pr ...

  2. 【软工神话】第四篇(Alpha冲刺)

    前言:咳咳,一个多月了,最近忙这忙那,都把这个故事给落下了,昨晚刚回到家,白天得干活,晚上赶紧把这个故事写完,以此纪念自己的软工. 说明:故事中的人物均是化名,故事情节经过些许加工,故事情节并没有针对 ...

  3. angular ng-repeat 动态获取的dom片段 显示

    .filter('to_trusted', ['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(tex ...

  4. 自定义简单版本python线程池

    python未提供线程池模块,在python3上用threading和queue模块自定义简单线程池,代码如下: #用threading queue 做线程池 import queue import ...

  5. 6个小而美的es6新特性

    译者:动静若参商 译文:http://www.zcfy.cc/article/1795 原文:https://davidwalsh.name/es6-features JavaScript社区中的每个 ...

  6. js 毫秒转天时分秒

    formatDuring: function(mss) { var days = parseInt(mss / (1000 * 60 * 60 * 24)); var hours = parseInt ...

  7. es6 语法 (正则扩展)

    { //es5中 let regex = new RegExp('xyz', 'i'); let regex2 = new RegExp(/xyz/i); console.log(regex.test ...

  8. 洛谷P2860 [USACO06JAN]冗余路径Redundant Paths(tarjan求边双联通分量)

    题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1. ...

  9. Android tabLayout+recyclerView实现锚点定位

    原文链接:https://mp.weixin.qq.com/s/L3o2i3WTmg1ScXEYDS8YCg 在上一篇文章 Android 实现锚点定位中,我们介绍了tablayout+scrollV ...

  10. Python3.6 下 安装MySql

    https://pypi.python.org/pypi/mysqlclient/1.3.10 该网页下下载 Python-3.5及上版本的扩展的mysql驱动. 下载的是一个.whl文件,下载目录为 ...