使用CefSharp在.Net程序中嵌入Chrome浏览器(四)——Javascript交互

栏目: ASP.NET · 发布时间: 7年前

内容简介:要在CEF中和网页的JS进行交互,首先我们要通过设置启用Javascrit集成功能。CefSharpSettings简单的调用JavaScript可以直接使用ExecuteScriptAsync扩展函数。

要在CEF中和网页的JS进行交互,首先我们要通过设置启用Javascrit集成功能。

CefSharpSettings . LegacyJavascriptBindingEnabled  =  true ;

调用JavaScript:

简单的调用JavaScript可以直接使用ExecuteScriptAsync扩展函数。

_chrome . ExecuteScriptAsync ( "alert('hello world')" );

实际上,JavaScript是具体到frame的,上述代码等价于

_chrome . GetMainFrame (). ExecuteJavaScriptAsync ( "alert('hello world')" );

调用JavaScript返回值:

我们也可以使用EvaluateScriptAsync扩展函数执行javascript并获取返回值。

var rsp =  await   _chrome . EvaluateScriptAsync ( "3+2*5" );
if  (rsp. Success )
{
     MessageBox . Show (rsp. Result . ToString ());
}

也可以具体到frame:

_chrome . GetMainFrame (). EvaluateScriptAsync ( "3+2*5" )

JavaScript回调:

要Javascript回调,首先得注入一个对象。

public class   AsyncBoundObject
{
     public   int   Div ( int  divident,  int  divisor)
    {
         return  divident / divisor;
    }
}
_chrome  =  new   ChromiumWebBrowser ();
_chrome . RegisterAsyncJsObject ( "cef" new   AsyncBoundObject ());
_chrome . Address  =  "http://tianfang.cnblogs.com" ;

注意:这个注入得再加载网页之前,否则可能网页无法加载注入的js。

注入的函数是异步返回的,因此返回的是一个Promise对象,我们调用的时候可以使用ES6的await方式。

await cef. div (4, 2)

关于js注入更多信息,可以参看这个网页。 how-do-you-expose-a-net-class-to-javascript


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript修炼之道

JavaScript修炼之道

波顿纽威 / 巩朋、张铁 / 人民邮电 / 2011-11 / 29.00元

《JavaScript修炼之道》是JavaScript的实战秘籍。作者将自己多年的编程经验融入其中,不仅可以作为学习之用,更是日常JavaScript开发中不可多得的参考手册,使读者少走很多弯路。《JavaScript修炼之道》的内容涵盖了当今流行的JavaScript库的运行机制,也提供了许多应用案例。《JavaScript修炼之道》针对各任务采取对页式编排,在对各任务的讲解中,左页解释了任务的......一起来看看 《JavaScript修炼之道》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码