window.external,WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互

本文主要是介绍window.external,WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:https://blog.csdn.net/weixin_34041003/article/details/86257585

https://www.cnblogs.com/feiyuhuo/p/5474790.html

 

我们在js中可以通过window.external.myfunc()来调用浏览器提供的外部方法myfunc。可以让网页内的js脚本中能调用C++代码。

window.external 是外部对象,如你写C# 本地程序放个 webbrowser ,嵌套个网页,


this.webBrowser1.ObjectForScripting = this; 就把当前窗口传递给javascript了

比如窗口中有 个函数叫 Test

public string Test(string jstr) { 
//在这里写些操作
}

然后

在 html 里面,写 window.external.Test("1111");

就传递到,C# 写的本地程序面去了,所以你光看见这个函数很难看着这,是什么。


1.external.addDesktopComponent 把网站作为用户的Active桌面
   语法:external.AddDesktopComponent(地址,类型[image/website],左距离,顶距离,宽度,长度)
function j_adc(){ //例子
window.external.addDesktopComponent("http://...","website",0,0,800,600);
}

2.external.addFavorite 把网站加入到用户的收藏夹

  语法:external.addFavorite(网址,标题);
function j_af(){
window.external.addFavorite(location.href, document.title);
}

3.external.navigateAndFind 搜索指定网站中的某个字段

  语法:external.navigateAndFind(文件地址,关键字,_Target)
<script language="javascript">
function j_an(){
window.external.navigateAndFind("http://...",gosearch.value,"");
}
</script>

4.external.showBrowserUI 调用语言选择窗口与收藏夹管理窗口

  语法:external.showBrowserUI(类型[LanguageDialog/OrganizeFavorites], null)
<input type="button" name="Button" value="语言设置" οnclick="window.external.ShowBrowserUI('LanguageDialog', null)">
<input type="button" name="Submit2" value="整理收藏夹" οnclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">

  5.external.importExportFavorites 导入与导出用户收藏夹

  语法:external.importExportFavorites(导入/true 导出/false, 文件路径)
<input type="button" name="Button" value="导入收藏夹" onClick=window.external.ImportExportFavorites(true,"http://...");>
<input type="button" name="Button3" value="导出收藏夹" onClick=window.external.ImportExportFavorites(false,"http://...");>

这篇关于window.external,WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618851

相关文章

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4