dcef3 为按钮添加单击事件
http://ju.outofmemory.cn/entry/78083
dcef3 为按钮添加单击事件
演示dcef3操作HTML DOM的方法
本来想拿Google下手,可是由于GFW的关系,还是用Baidu测试好了
给标题名为“百度一下”的按钮添加一个执行delphi函数的单击事件
{$I cef.inc}
type
TCustomRenderProcessHandler = class(TCefRenderProcessHandlerOwn)
protected
procedure OnWebKitInitialized; override;
function OnProcessMessageReceived(const browser: ICefBrowser; sourceProcess: TCefProcessId;
const message: ICefProcessMessage): Boolean; override;
end;
TTestExtension = class
class function hello: string;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
Chromium.browser.SendProcessMessage(PID_RENDERER,
TCefProcessMessageRef.New('visitdom'));//操作DOM
end;
procedure ButtonClickProc(const Event: ICefDomEvent);
begin
ShowMessage('Click The Button');
end;
procedure VisitDomProc(const Doc: ICefDomDocument);
var
ButtonNode: ICefDomNode;
begin
ButtonNode := Doc.GetElementById('su1');
if Assigned(ButtonNode) then
ButtonNode.AddEventListenerProc('click', True, ButtonClickProc);
end;
{ TCustomRenderProcessHandler }
function TCustomRenderProcessHandler.OnProcessMessageReceived(
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const message: ICefProcessMessage): Boolean;
begin
{$IFDEF DELPHI14_UP}
if (message.Name = 'visitdom') then
begin
browser.MainFrame.VisitDomProc( VisitDomProc);
Result := True;
end
else
{$ENDIF}
Result := False;
end;
procedure TCustomRenderProcessHandler.OnWebKitInitialized;
begin
{$IFDEF DELPHI14_UP}
TCefRTTIExtension.Register('app', TTestExtension);
{$ENDIF}
end;
{ TTestExtension }
class function TTestExtension.hello: string;
begin
Result := 'Hello from Delphi';
end;
initialization
CefRenderProcessHandler := TCustomRenderProcessHandler.Create;
CefBrowserProcessHandler := TCefBrowserProcessHandlerOwn.Create;
end.
dcef3 为按钮添加单击事件的更多相关文章
- Unity3D NGUI 给button按钮添加单间事件
Unity3D中, NGUI 给button按钮添加单间事件的方法很多,在这里只给推荐一种比较常用的方法. 推荐方法:使用UIListener. 1.给button组价添加上UIListener.选择 ...
- DOM操作-主动触发按钮的单击事件
代码: ———————————————————————————————— <script> function fireBtnClick(){ var myBtn ...
- 在WPF的DataGrid中对行添加单击事件
在做的一个c#的项目中发现Datagrid没办法直接对鼠标单击进行响应,调用MouseDown事件也需要点击某一行第二次才能响应.所以借助EventSetter来简单的实现了一个. 界面部分的代码 & ...
- 页面中插入flash,并且给flash添加单击事件控制播放,以及获取相关参数.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" hei ...
- Android:双层嵌套ViewPager并添加单击事件
仿网易新闻: 实现原理: 上面的导航栏是一个自定义的ViewGroup(类似ActionBar) 中间内容层是ViewPager套fragment实现左右切换滑动 fragment里面的布局是一个Li ...
- 一步一步学android之事件篇——单击事件
在使用软件的时候单击事件必不可少,比如我想确定.取消等都需要用户的单击,所有的单击事件都是由View.OnClickListener接口来进行处理的,接口定义如下: public static int ...
- jQuery 给div绑定单击事件
说明:这篇随笔介绍的是怎么给div添加单击(click)事件.不再废话 直接看代码 <%@ Page Language="C#" AutoEventWireup=" ...
- Android代码规范----按钮单击事件的四种写法
[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...
- 【转】为ListView每个Item上面的按钮添加事件
原文网址:http://blog.csdn.net/qq435757399/article/details/8256453 1.先看下效果图: 在这里仅供测试,我把数据都写死了,根据需要 ...
随机推荐
- tar.xz问价解压
1. 解压tar.xz安装包 今天去Ubuntu上安装nodejs,下载的文件是node-v8.11.1-linux-x64.tar.xz,这是两层压缩,外面是xz压缩,里层是tar压缩,所以分两步实 ...
- mysql,oracle,sql server数据库默认的端口号,端口号可以为负数吗?以及常用协议所对应的缺省端口号
mysql,oracle,sql server数据库默认的端口号? mysql:3306 Oracle:1521 sql server:1433 端口号可以为负吗? 不可以,端口号都有范围的,0~65 ...
- rest_framework框架的基本组件
快速实例 Quickstart 序列化 创建一个序列化类 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式. ...
- Candidate Generation and LUNA16 preprocessing
在这个kernel中,我们将讨论有助于更好地理解问题陈述和数据可视化的方法. 我还将提供有用的资源和信息的链接. 此脚本是用Python编写的. 我建议人们在桌面上安装anaconda,因为here提 ...
- aidl 详解
aidl 是 android interface define language 的缩写,主要是作为进程间通讯的一个接口规范,这种通讯是一种普通的 client-server 的模式,对于 clien ...
- vue2.0发布
http://blog.csdn.net/xuefeiliuyuxiu/article/details/78970815
- 【开车旅行】题解(NOIP2012提高组)
分析 首先我们可以发现,两个询问都可以通过一个子程序来求. 接着,如果每到一个城市再找下一个城市,显然是行不通的.所以首先先预处理从每一个城市开始,小A和小B要去的城市.预处理的方法很多,我用的是双向 ...
- LeetCode--142--环形链表II(python)
给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...
- Eclipse设置类和方法的注释模板
一.打开设置模板的窗口:Window->Preference->Java->Code Style->Code Template展开Comments,最常用的就是类和方法的注释, ...
- tomcat 启动一傘而过问题
tomcat 启动一傘而过问题 D:\apache-tomcat-7.0.75\bin startup.bat打开记事本打开 第一行:设置启动环境变量JAVA_HOME,CATALINA_HOME S ...