|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
2020/9/3 15:40:42 |
标题: |
关键字 Delphi7 TWebBrowser JS window.extenal |
浏览:1726 |
|
加入我的收藏 |
楼主: |
文档说:“Client端打开对应webview,并与前端搭建对应的JS桥,前端将唤起window.extenal.sendMessage事件,并将需要传递的信息添加其中。需要客户端对webview定义一个sendMessage事件用于监听前端发起的js请求,请求参数种会携带对应的Json数据。”
现在项目需要WebBrowser加载一个网页,网页上有几个按钮,比如【同意】【取消】【忽略】,当用户点了网页不同的按钮,delphi执行不同的流程。 Q: Delphi WebBrowser 如何接收到JS的window.extenal内容???
----------------------------------------------
- |
作者: |
|
2020/9/3 16:55:57 |
1楼: |
D7 的话,WebBrowser 是 WINDOWS 内置的那个。
这个其实需要看你的网页的那个 button 是怎么写的。它触发的是什么东西。假设它触发的是 form 的提交,如何处理?假设它触发的是一段 JS 代码,又如何处理?
所以这事不简单。
----------------------------------------------
-
|
作者: |
|
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接口。。。
----------------------------------------------
-
|
|