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


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

查看所有标签

猜你喜欢:

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

STL源码剖析

STL源码剖析

侯捷 / 华中科技大学出版社 / 2002-6 / 68.00元

学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到风格,都原原本本体现在源码之中。 这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术......一起来看看 《STL源码剖析》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具