文档章节

通过webbrowser实现js与winform的相互调用

麦穗
 麦穗
发布于 2015/09/29 18:15
字数 215
阅读 76
收藏 4

1客户端页面

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <script>
        function test(message) { alert(message); }
    </script>
    <!-- 调用C#方法 -->
    <button onclick="window.external.MyMessageBox('javascript访问C#代码')">
        javascript访问C#代码
    </button>

</body>
</html>

2服务端代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace coder128
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]//com可访问性
    public partial class frm2 : Form
    {
        public frm2()
        {
            InitializeComponent();
        }

        private void frm2_Load(object sender, EventArgs e)
        {//该对象可由显示在WebBrowser控件中的网页所包含的脚本代码访问。
            wb.ObjectForScripting = this;//将当前类设置为可以供外界访问
            wb.Navigate("C:/Users/nick/Documents/visual studio 2015/Projects/jizhiclient/coder128/wbtest.html");
        }

        private void btn_Click(object sender, EventArgs e)
        {
            wb.Document.InvokeScript("test", new String[] { "服务端调客户端" });
        }
        public void MyMessageBox(String message)
        {
           Form1 form= new Form1();
            form.ShowDialog();
        }
    }
}


© 著作权归作者所有

麦穗
粉丝 0
博文 15
码字总数 6926
作品 0
南岸
程序员
私信 提问
加载中

评论(1)

wzugang
wzugang
google有类似的c语言库,使用起来更加方便
javascript与c#相互调用

首先建立网页: 二、建立Windows应用程序 创建Windows应用程序项目 在Form1窗体中添加WebBrowser控件 在Form1类的上方添加 [System.Runtime.InteropServices.ComVisibleAttribute(true)] 这是...

crossmix
2015/04/16
195
0
Winform/WPF中内嵌BeetleX的HTTP服务

在新版本的加入了对支持,如果程序基于.NetFramework4.6.1来构建WinForm或WPF桌面程序的情况下可以直接把BeetleX的HTTP嵌入到程序中,轻易就能实现一个本地化的HTTP服务并提供静态资源和Web...

泥水佬
04/19
19
0
webbrowser的疑问以及国产浏览器实现机制

客户要一个集成登陆平台,有的系统要求IE7-8,有的要求chrome,而各个系统之间又没法打通数据(例如密码加密方式不同等),也不可能提供开发接口(系统运行多年),所以我计划用 Chromium +...

magican
2015/06/18
222
0
在 Windows Phone 中集成 HTML5 以及 JavaScript

这年头,到处都在讨论HTML5,我自己也在 Danish Developer Conference 2012 on Windows Phone and HTML5 大会上提到了它。我们也看到了 HTML5 的能力与优点。但是对于移动应用来说,HTML5 对...

junwong
2012/03/20
3.9K
0
C++ MFC WebBrowser 探索(二)

使用webbrowser控件 javascript调用C++ 实现流程,这里面涉及到了自动化对象,即IDispatch接口的实现,首先说下大概框架,否则初学者如我看了半天还是不太明白,这些类是如何在一起相互调用的...

吃一堑消化不良
2015/11/05
377
0

没有更多内容

加载失败,请刷新页面

加载更多

使用TensorFlow的AI程序运行报错AttributeError: module 'tensorflow' has no attribute 'xxx'

使用TensorFlow的AI程序,在运行时报错AttributeError: module 'tensorflow' has no attribute 'xxx',首先检查是否是包路径不对,一般是版本变化所致。...

织梦之魂
32分钟前
2
0
提示浏览器版本低

本文转载于:专业的前端网站➭提示浏览器版本低 网站网页在遇到浏览器低版本(尤其是IE浏览器)时,提示浏览器版本低(如IE8以及以下),建议用户升级浏览器以获得最好体验。以下是代码: 1...

前端老手
34分钟前
5
0
CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
57分钟前
6
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
今天
6
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部