当前位置:首页 > 计算机 > 正文内容

C#与javascript 相互调用

DYX3年前 (2022-06-22)计算机717

1.准备环境

   vs2010 

2. 项目结构

   

     index.htm 为需要显示的web页面

     其中需要操作提供的方式的C# 调用的javascript 方法 以及进行测试javascript 调用C# 方法的测试

    源码如下:   

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn" />
<title>
demo
</title>
<script language="javascript" type="text/javascript">
function messageBox(message)
{
alert(message);
}
</script>
</head>
<body>
<!-- 调用C#方法 -->
<button onclick="window.external.ShowMessage('javascript访问C#代码')">
javascript访问C#代码</button>
<div style=" background-color:Black; height: 105px;">
</div>
</body>
</html>

      winform 提供的javascript 调用方法

public void ShowMessage(string message)
{
MessageBox.Show(message);

    窗体加载显示的web页面(比较简单)

private void Form1_Load(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo("index.htm");
// WebBrowser控件显示的网页路径
webBrowser1.Url = new Uri(file.FullName);
// 将当前类设置为可由脚本访问
webBrowser1.ObjectForScripting = this;
}

 开始界面如下:

 

调用web 的javascript 测试:

进行C#方法调用(提示一下错误)

原因是c# 是托管代码与window.external 调用需要使用的com 对象不一致,

如何改进(很简单)进行配置即可,如下:

再次运行:

界面如下:

例子比较简单。

其中最重要的是

window.external 

具体的使用请自己搜索(可以给网站添加搜索,添加收藏加,调用其他的外部方法。。。。。)

3. 可以应用的场景

   大家经常使用的播放器(比如千千静听某版本)我们点击搜索是web页面,然后点击播放直接添加winform 页面 等等。。。。。


“C#与javascript 相互调用” 的相关文章

Linux ls 命令的 20 个实用范例

Linux ls 命令的 20 个实用范例

Linux中一个基本命令是ls。没有这个命令,我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。ls是什么ls命令用于列出文件和目录。默认上,他会列出当前目录的内容。带上参数后,我们可以用ls做更多的事情。这里是一些在日常操作中使用到的ls用法的示例。1、不带参数运行ls不...

中大型网站的架构演变

中大型网站的架构演变

一、单机构建系统二、Nginx负载均衡+服务器集群三、HA高可用+负载均衡+服务器集群四、CDN内容分发网络+Varnish服务器集群五、数据库读写分离六、NOSQL数据库 + 分布式搜索引擎七、NOSQL数据库(HA)+分库分表八、分布式文件系统九、应用服务化拆分 + 消息中间件十、微服务架构从过...

Win10企业版和LTSB\LTSC分支有什么不同

Win10企业版和LTSB\LTSC分支有什么不同

Win10企业版相对于家庭版、教育版、专业版的用户人群不同,面向企业用户。但是Win10又出现了LTSB版和N版。这个LTSB版和N版是什么?两者区别在哪?微软弱的服务器操作系统Server2019也有长期服务版本LTSC版,提供10年技术支持。对于企业来说,有技术支持最好。Win10 LTSB 2...

高级运维的一天

高级运维的一天

很多刚学linux运维的朋友,总是搞不懂,运维工程师工作中干些啥?学的这些东西有什么用?还有很多人会以为运维嘛,不就是一个修电脑修网线的。有句话说得好:运维做到极致,不是出现问题时能轻松解决,而是知道怎么提前预防问题的出现,能将故障扼杀在萌芽里。今日我特来总结总结一个高级运维干什么,希望能帮助即将跨...

隐藏用户没有权限的数据库,让他只能看到自己拥有权限的数据库

隐藏用户没有权限的数据库,让他只能看到自己拥有权限的数据库

隐藏用户没有权限的数据库,让他只能看到自己拥有权限的数据库这个很多人都问的问题,可能很多都有没有得到答案希望可以帮到你:隐藏用户没有权限的数据库,让他只能看到自己拥有权限的数据库这个很多人都问的问题,可能很多都有没有得到答案首先你阅读以下ms关于VIEW ANY DATABASE...

AArch64、x86是什么

AArch64、x86是什么

AMD,中文名(超威)超微半导体,是除了英特尔以外最大的x86架构微处理供应商,也是除了英伟达以外仅有的独立图形处理供应商。x86泛指一系列由英特尔公司开发的处理器的架构,最早为1978年面世的“Intel 8086”CPU。早期的处理器均是以此格式来命名,如Intel 8086,80186,802...