搜索
查看: 2153|回复: 7

请问web.kit怎么控制iframe里的节点?

[复制链接]

3

主题

16

帖子

99

积分

一级会员

Rank: 2

积分
99
发表于 2017-12-23 17:34:26 | 显示全部楼层 |阅读模式
本帖最后由 wodetian55 于 2017-12-23 17:36 编辑

比如,我要操作某一个网页内ID为:"mframe"的iframe节点里的<div class="mytitle">需要获取的文本</div>。
我自己写的代码无法获取,在此向大家求教。

我自己调试部分代码如下:
  1.         var mf = wb.querySelector("#mframe");
  2.         var elem = mf.querySelector(".mytitle");
  3.         mainForm.edit.text = elem.innerText;
复制代码

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-12-23 20:51:21 | 显示全部楼层
wb.querySelector 可以获取节点的,参考我发的范例。

至于你那个节点为什么不行,因为你把能运行的代码留给你自己看了,所以猜不出来是什么情况,不擅长猜谜。
回复

使用道具 举报

12

主题

57

帖子

422

积分

二级会员

Rank: 3Rank: 3

积分
422
发表于 2017-12-23 20:51:46 | 显示全部楼层
提问要带代码,我也不知道怎么解决,把测试代码放这吧,方便别人测试

  1. import win.ui;
  2. import web.kit.form;

  3. /*DSG{{*/
  4. var winform = win.form(text="aardio form";right=759;bottom=469)
  5. winform.add(
  6. button={cls="button";text="获取iframe内节点文本";left=16;top=16;right=160;bottom=56;z=1}
  7. )
  8. /*}}*/

  9. io.open()
  10. webkit = web.kit.form(winform);
  11. webkit.html = /**
  12. <!DOCTYPE html>
  13. <html>
  14. <head>
  15.     <meta charset="utf-8" />
  16. </head>
  17. <body>
  18.         <iframe id="mainFrame" src="http://www.baidu.com" height="600" width="800">

  19.         </iframe>
  20. </body>
  21. </html>

  22. **/
  23. winform.button.oncommand = function(id,event){
  24.        
  25.         iframe = webkit.querySelector("#mainFrame");
  26.         io.print(iframe);
  27.         //百度搜索按钮id是su,怎么获取或修改按钮的内容
  28.         ele = iframe.querySelector("#su");
  29.         io.print(ele);       
  30.        
  31. }
  32. winform.show()
  33. win.loopMessage();
复制代码
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-12-23 21:13:20 | 显示全部楼层
iaauto 发表于 2017-12-23 20:51
提问要带代码,我也不知道怎么解决,把测试代码放这吧,方便别人测试

有些其他语言的基础知识,自己可以先去了解一下,
你的JS跨域了,浏览器如果让你做这么危险的事情那就是漏洞。

回复

使用道具 举报

12

主题

57

帖子

422

积分

二级会员

Rank: 3Rank: 3

积分
422
发表于 2017-12-23 21:32:42 | 显示全部楼层
Jacen.He 发表于 2017-12-23 21:13
有些其他语言的基础知识,自己可以先去了解一下,
你的JS跨域了,浏览器如果让你做这么危险的事情那就是 ...


web.form用的IE内核,可以通过wb.getWebform操作其他框架的节点,webkit因为精简不支持操作其他框架么?
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-12-23 22:00:49 | 显示全部楼层
iaauto 发表于 2017-12-23 21:32web.form用的IE内核,可以通过wb.getWebform操作其他框架的节点,webkit因为精简不支持操作其他框架么 ...
JS基础知识先去了解,在web.form里是一样的JS不能跨域.......

wb.getWebform是获取COM控件接口(只有能操作静态接口指针的语言才可以获取该接口,JS不行),至于WebKit为什么不支持COM控件,为什么IE有的功能WebKit就没有,是不是WebKit把这个功能给精简掉了,建议你去咨询一下原作者会更好一些。
回复

使用道具 举报

3

主题

16

帖子

99

积分

一级会员

Rank: 2

积分
99
 楼主| 发表于 2018-1-25 19:55:29 | 显示全部楼层
iaauto 发表于 2017-12-23 20:51
提问要带代码,我也不知道怎么解决,把测试代码放这吧,方便别人测试

非常感谢指教,我已经解决这个问题了,通过js脚本操作就可以了。
回复

使用道具 举报

3

主题

16

帖子

99

积分

一级会员

Rank: 2

积分
99
 楼主| 发表于 2018-1-25 20:00:09 | 显示全部楼层
本帖最后由 wodetian55 于 2018-1-25 20:06 编辑
Jacen.He 发表于 2017-12-23 22:00
JS基础知识先去了解,在web.form里是一样的JS不能跨域.......

wb.getWebform是获取COM控件接口(只有能 ...


iaauto给的示例的确是存在跨越。我原先提问的时候,忽略说明和给出示例代码了,同域操作。
我个人通过笨办法wb.doScript写入js来获取节点并控制。

另外,请问一下问题:
web.form怎么可以监控网页内的ajax请求?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-17 15:36 , Processed in 0.078125 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表