注册 登录
编程论坛 VFP论坛

请教VFP 怎样用WEBVIEW2获取网页html或文本内容?

SATANA 发布于 2023-12-14 03:37, 740 次点击
m.nr=W_D.ExecuteScriptAsync("document.documentElement.outerHTML")
m.nr=W_D.ExecuteScriptAsync("document.documentElement.innnerText")
m.nr=W_D.ExecuteScriptAsync("return document.documentElement.innnerText")
加document.querySelector
m.nr得到的是对象 不是文本
都无效

14 回复
#2
吹水佬2023-12-14 07:04
W_D是什么?
#3
SATANA2023-12-14 08:48
w_d=
#4
iswith2023-12-14 11:03
你没有认真去看DEMO,ExecuteScriptAsync这个是执行JS脚本,异步的!当执行时,VFP是OnExecuteScriptAsync事件接收消息的。要区分多个脚本执行使用cid来辨别。VFP程序员都是单线理解代码,有些地方可能会不适应这类设计!认为直接A方法就一定马上返回A方法的结果值。其实在现在主流语言上设计是多样性的!如比C# 执行A,B,C三个方法!我就可以在执行完C后异步等待结果值返回,让主程线异步去做别的!也可以,执行完A,B,C同步等待,让主程线(阻塞)等待C方法完成,当然还有更为复杂的逻辑性,这里就不描述了。。。。

[此贴子已经被作者于2023-12-14 11:10编辑过]

#5
SATANA2023-12-14 15:05
那怎样加等待?有同步的吗?
#6
SATANA2023-12-17 01:36
VFP 怎样用WEBVIEW2获取网页html或文本内容?
C#有await  vfp不知如何解决

#7
SATANA2023-12-19 00:43
#8
SATANA2023-12-20 14:01
#9
吹水佬2023-12-20 15:08
如果是调用JS脚本通信接口可用同步消息触发VFP事件
如果是使用第三方控件且用异步事件只能暂停检测等待
#10
SATANA2023-12-20 21:42
吹版  能说的具体点吗 万分感谢

#11
SATANA2023-12-20 21:44
回复 9楼 吹水佬
吹版 能说的稍微具体点吗?

[此贴子已经被作者于2023-12-20 23:58编辑过]

#12
吹水佬2023-12-20 23:19
以下是引用SATANA在2023-12-20 21:44:16的发言:

吹版 能说的稍微具体点吗? 万分感谢!已经给您短信了

短信的就不用了
不知对WEBVIEW2了解多少?
本人对WEBVIEW2所了解的都在贴子说过
#13
SATANA2023-12-20 23:58
以前用过selenium, 对DOM也算了解,以前就是用selenium+谷歌
webview2也是刚接触,vfp水平一般
我就是想抓取网页的text,html,以及元素的text,html
ExecuteScriptAsync倒是能给网页赋值或提交,就是不能返回元素的文本或HTML


#14
SATANA2023-12-21 00:02
C# 可以用异步await ExecuteScriptAsync来获取
VFP 返回的是对象,不是字符
我搞不清AddScriptToExecuteOnDocumentCreated,   window.chrome.webview.postMessage,   OnWebMessageReceived之间的逻辑关系
#15
吹水佬2023-12-21 07:30
不清楚你具体是怎样便用webview2的
ms好像没有能给vfp使用的webview2控件
1