首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺少TChromium中的Defaultinterface

缺少TChromium中的Defaultinterface
EN

Stack Overflow用户
提问于 2011-07-27 11:31:06
回答 2查看 1.1K关注 0票数 2

我们正在尝试将内置浏览器组件从TWebBrowser更改为TChromium。它主要用于显示谷歌和必应的地图。从javascript到Delphi的通信是用COM完成的。

当试图将浏览器更改为TChromium时,它无法编译此代码。

代码语言:javascript
复制
if supports(fBrowser.defaultInterface, IOleObject, fOLE) then

因为defaultInterface从TChromium中消失了。

编辑:还可以用Chromium从javascript到Delphi进行通信吗?我知道它们是不兼容的,我必须重写代码。我只想知道如何从javascript到delphi获得结果。注意,我使用的是Delphi 2007,因此不能使用扩展的RTTI。

问候罗兰·本特松

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-03 11:20:33

使用TChromium,您可以通过ExecuteJavaScript轻松地调用脚本。您还可以从脚本中调用Delphi代码,您可以使用脚本将返回值从JavaScript函数发送回Delphi。关于使用扩展执行此操作,请参见这个问题和我的答案。

EexecuteScriptAndReturnValue这样的函数的工作似乎也在进行中,但在编写时,它们并不包含在主干中。

关于TWebBrowser.DefaultInterface,我同意Cosmin的观点:最好的类比可能是TChromium.Browser,因为您可以从那里访问框架和随后的DOM等等。

票数 1
EN

Stack Overflow用户

发布于 2011-07-27 11:47:22

我本人从未使用过它,但TChromium似乎是“Chromium浏览器的包装器”,而来自Delphi的原始TWebBrowser则是IE浏览器的包装器。

TWebBrowser.defaultInstance为您提供IE浏览器的COM对象。对于Chromium,显然可以使用TChromium.Browser,它为您提供了一个ICefBrowser类型的对象。TChromium人员不给属性命名defaultInstance是明智的,因为有很多代码从defaultInstance返回到其他接口类型:如果TChromium.Browser被命名为相同的,那么转换将在运行时编译并失败。因为IE浏览器显然不是Chrome浏览器,而且我怀疑Chromium完全实现了所有IE接口。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6843569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档