此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互。
一、C#程序
1、在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中。
2、窗体代码添加
using System.Runtime.InteropServices;//和Html页面交互使用
在类的上一行添加
[ComVisible(true)]//和Html页面交互使用
在类的构造其中添加
this.webB.ObjectForScripting = this; //和Html页面交互使用
如:
using System.Runtime.InteropServices;
namespace slgdjb
{
[ComVisible(true)]
public partial class Frm_Index : Form
{
public Frm_Index()
{
InitializeComponent();
this.webB.ObjectForScripting = this;
}
}
}
3、添加供Html页面调用的方法
如:
该方法的方法名即为Html页面JS中所要调用的方法名
public string myAction(object para)
{
//方法内容在此写
}
4、C#程序调用Html页面JS方法
首先要获得Html页面的Document,然后再调用Html页面的JS方法
如:
HtmlDocument doc = webB.Document;
string[] objArray = new string[2];
objArray[0] = "a";
objArray[1] = "b";
//调用Html页面js方法,JSMonth为JS方法名,objArray为传递的参数。
//JS中不能接收对象,但可以接收整形、字符串、字符串数组。
doc.InvokeScript("JSMonth",objArray);
二、Html页面中JS方法调用C#方法
1、在Html页面JS中调用C#程序的方法,若C#中的方法有返回值,则JS可以得到。
如:
//myAction为C#中方法的方法名,para为该方法的参数。
var str = window.external.myAction(para);
2、供C#调用的Html页面中JS的方法
该方法的方法名即为C#中所要调用的方法名 obj即为要传递的参数。若传递的参数为数组,则在JS
方法中可直接使用arguments[index(数组参数编号)]表示数组的参数值。arguments为JS默认数组参数,其好处在于JS方法不必写传递的参数。
function JSMonth(obj){
//若obj为数组,则obj[0]等价于arguments[0];其方法名可改写为JSMonth()
}
分享到:
相关推荐
总结来说,`iframe`与父页面间的通信主要依赖于JavaScript的DOM接口、`postMessage`/`message`事件以及URL参数和Web存储。在实际应用中,开发者应根据项目需求和安全性考虑选择合适的通信方式。了解这些方法,可以...
Unity引擎是一款广泛应用于游戏开发的跨平台工具,它支持多种编程语言,包括C#和JavaScript(Unity中的JS称为UnityScript,但与Web开发中的JavaScript有较大差异)。在Unity项目中,有时开发者可能需要在C#脚本和...
通过这个控件,我们可以利用C#代码控制网页的行为,同时也可以从网页的JavaScript代码中调用C#的方法,实现了C#与JS的互调。 实现C#与JS互调的核心技术是`EvaluateScriptAsync`方法,它允许我们在C#中执行...
DWR (Direct Web Remoting) 是一种开源的Java框架,用于在Web应用程序中实现前端JavaScript与后端Java代码之间的直接、异步通信。这个技术允许开发者在不借助于页面刷新或者传统的AJAX请求的情况下,实现在服务器端...
这个库的一个关键特性就是提供了C#与JavaScript之间的双向通信机制,使得我们可以从C#代码中调用JavaScript函数,同时也能捕获JavaScript对C#方法的调用。这种互调能力为开发富客户端应用提供了极大的便利,比如构建...
在Android应用开发中,有时我们需要实现Android原生代码与JavaScript代码之间的交互,这通常被称为“Android与JS互调”。这种技术允许我们利用JavaScript的灵活性来处理部分用户界面逻辑,同时利用Android的系统级...
Java和JavaScript互调是移动应用开发中的一个重要概念,特别是在Android平台上。Android系统广泛使用Java作为主要的编程语言,而Web内容则通常由JavaScript处理。在许多情况下,开发者需要在原生Android应用中嵌入...
通过分析这些代码,你可以更好地理解如何在C#中使用CefGlue来实现C#与JavaScript的互调,以及解决可能出现的界面无响应或黑屏问题。确保正确设置线程同步和异常处理,可以避免界面阻塞,提升用户体验。
本篇将详细讲解Android与JavaScript互调的原理、方法及应用示例。 首先,Android与JavaScript交互的核心是WebView组件,它是一个内置的浏览器引擎,可以加载并显示HTML页面。通过WebView,我们可以将JavaScript代码...
在IT领域,尤其是在桌面应用程序开发中,有时我们需要在C#这样的强类型编程语言与JavaScript这样的脚本语言之间建立通信桥梁。这种交互性可以为应用程序带来更丰富的用户界面和动态功能。本篇将深入探讨如何利用`...
要调用C#的方法,首先需要在C++/CLI中创建一个指向C#对象的引用,然后就可以像调用普通C++方法一样调用C#的方法。对于事件,C++/CLI可以通过实现C#事件处理程序的接口来订阅和处理事件。以下是一个简化的示例: ```...
服务器端C#代码想要调用客户端JavaScript,通常发生在页面回发之后,此时需要确保JavaScript代码已经存在于DOM中。将JavaScript写在`<head>`标签内或者在`Page_Load`事件中动态添加,可以确保在页面渲染时JavaScript...
WebView不仅能够显示HTML、CSS和JavaScript构建的页面,还能通过JavaScript与原生代码进行交互,实现更丰富的功能和用户体验。这个话题我们将深入探讨WebView与JavaScript的互调机制。 一、WebView简介 WebView是...
而JavaScript与Java的互调功能,使得我们可以在网页中调用Android原生的方法,或者在Android代码中执行JavaScript代码,极大地扩展了WebView的功能。本文将详细讲解如何实现`webviewjs与java互调`,并解决相关问题。...
在Unity 3D开发环境中,有时我们可能需要在C#脚本和JavaScript脚本之间进行交互,例如在C#中触发JavaScript函数或者反之。要实现这种互调用,需要了解Unity的编译过程以及特定的目录结构规则。下面将详细讨论如何在...
在Android开发中,Java与JavaScript的交互是一种常见的需求,特别是在构建混合式移动应用时。这种交互使得我们可以利用JavaScript的灵活性和丰富的Web库,同时利用Java为Android提供的原生功能。以下将详细介绍Java...
在iOS和JavaScript交互的场景中,开发者经常需要在原生应用和Web页面之间进行方法调用,以便充分利用两者的优势。这个“iOS和Js互调的简单例子”将为我们揭示这一技术的核心原理和实现方式。 首先,我们要理解的是...
在移动应用开发中,Android与JavaScript的交互是一个重要的技术环节,尤其在混合开发模式下,开发者需要在原生Android应用中嵌入Web页面,并实现两者之间的数据传递和功能调用。本篇主要介绍如何实现Android与...
Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(Java)代码 4) HTML中js调用Android(Java...
在Android开发中,Java与JavaScript的交互是常见且重要的功能,尤其当我们在应用程序中嵌入WebView组件时。WebView不仅能够加载HTML、CSS和JavaScript代码,还可以通过特定接口与Android的Java代码进行通信,实现...