DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: guang2022
今日帖子: 6
在线用户: 1
导航: 论坛 -> 网络通讯 斑竹:liumazi,sephil  
作者:
男 foryour (sean) ★☆☆☆☆ -
普通会员
2020/9/3 15:40:42
标题:
关键字 Delphi7 TWebBrowser JS window.extenal 浏览:1297
加入我的收藏
楼主: 文档说:“Client端打开对应webview,并与前端搭建对应的JS桥,前端将唤起window.extenal.sendMessage事件,并将需要传递的信息添加其中。需要客户端对webview定义一个sendMessage事件用于监听前端发起的js请求,请求参数种会携带对应的Json数据。”

现在项目需要WebBrowser加载一个网页,网页上有几个按钮,比如【同意】【取消】【忽略】,当用户点了网页不同的按钮,delphi执行不同的流程。
Q: Delphi WebBrowser 如何接收到JS的window.extenal内容???
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2020/9/3 16:55:57
1楼: D7 的话,WebBrowser 是 WINDOWS 内置的那个。

这个其实需要看你的网页的那个 button 是怎么写的。它触发的是什么东西。假设它触发的是 form 的提交,如何处理?假设它触发的是一段 JS 代码,又如何处理?

所以这事不简单。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2020/9/3 17:03:02
2楼: 我只 听说过 重定向
----------------------------------------------
(C)(P)Flying Wang
作者:
男 gmxyb (gmxyb) ▲▲▲▲▲ -
注册会员
2020/9/4 14:15:47
3楼: Delphi WebBrowser 如何接收到JS的window.extenal内容???
----------
可以的。不过要扩展一下 TWebBrowser,实现 IDocHostUIHandler 接口

IDocHostUIHandler接口中有个GetExternal()
你要在在GetExternal()中返回一个IDispatch接口
这个IDispatch接口具体实现类,就是自己用Delphi写的了

delphi中可以用 RTTI,以及 ObjComAuto.TObjectDispatch.Create(...) 来直接把一个 delphi类包装成 IDispatch接口。。。
----------------------------------------------
-
作者:
男 tuhemm (刀锋土禾) ▲△△△△ -
禁用账号
2022/5/12 22:59:03
4楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布无用信息,禁用帐号!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行33.20313毫秒 RSS