使用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


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

查看所有标签

猜你喜欢:

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

付费:互联网知识经济的兴起

付费:互联网知识经济的兴起

方军 / 机械工业出版社 / 2017-6-1 / CNY 59.00

关于互联网知识付费的首部作品 知识工作正在被重塑,知识经济正在开启互联网时代下半场 为你展现互联网知识经济全景大图,解读新物种的前世今生 内容简介 一个产业解读 三个分析工具 一组知识卡片 书是最早的知识载体,已有2000多年的付费历史,随着移动互联网的普及,新的知识经 济在今天爆发,知识的创造者和传播者从书后走到了书前,互联网知识经济正在拉开帷幕。知识的......一起来看看 《付费:互联网知识经济的兴起》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具