Foxtable(狐表)用户栏目专家坐堂 → 如何获取嵌套网页中HTML里的元素?


  共有2992人关注过本帖树形打印复制链接

主题:如何获取嵌套网页中HTML里的元素?

帅哥哟,离线,有人找我吗?
304376480
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
如何获取嵌套网页中HTML里的元素?  发帖心情 Post By:2021/1/19 12:03:00 [只看该作者]

老师您好!
在webbrowser控件中的一个HTML网页,里面又嵌套了一个 #document (这是一个完整的HTML网页,)

<body>
<div id="show" style="">123</div>
<dialog style="Top:10px;Width:1100px;Height:700px;" open="">
<iframe id="dialog-body" src="./files/cyjg04.html" style="border: 0; width: 100%; height: 100%;">
#document
(这里面是完整的Html代码)
<body>
<div id="content" class="clearfix"> </div>
</body>
</iframe>
</dialog>
</body>

使用Document.GetElementById("") 和 GetElementsByTagName("“)等方法只能获取上一层网页中的元素的

求助,如何拿到嵌套网页中的 Id为content 的 div 元素? 
[此贴子已经被作者于2021/1/19 12:04:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/19 12:14:00 [只看该作者]

document.getElementById('dialog-body').contentWindow.document.getElementById('content')

 回到顶部
帅哥哟,离线,有人找我吗?
304376480
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2021/1/19 14:28:00 [只看该作者]


显示错误:
contentWindow不是system.windows.forms.HtmlElement的成员

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/19 14:34:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
304376480
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2021/1/19 15:06:00 [只看该作者]

还是不会用,
在我定义一下变量,列出完整代码吧!图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/19 15:28:00 [只看该作者]

dim FrameWindow = Document.Window.Frames(0)
if FrameWindow isnot nothing
dim FrameElement = FrameWindow.WindowFrameElement
dim a = FrameElement.getElementById('content')
msgbox(a.innerhtml)
end if
[此贴子已经被作者于2021/1/19 15:28:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
304376480
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2021/1/19 16:26:00 [只看该作者]


Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
Dim FrameWindow = web.Document.Window.Frames(0)
If FrameWindow IsNot Nothing
Dim FrameElement = FrameWindow.WindowFrameElement
Dim a = FrameElement.OuterHtml 
msgbox(a)
End If

还是不行,用OuterHtml方法测试打印出的标签还是<iframe >标签本身
<iframe id="dialog-body" src="./files/cyjg04.html" style="border: 0; width: 100%; height: 100%;">

InnerHtml方法打印的是空白,还是没有包括里面的#document以及HTML代码

Dim a = FrameElement.document.getElementById('content')   这样a 值仍然为空





[此贴子已经被作者于2021/1/19 16:26:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/19 16:36:00 [只看该作者]

是不是有多个框架?
msgbox(web.Document.Window.Frames.count)

 回到顶部
帅哥哟,离线,有人找我吗?
304376480
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2021/1/19 19:20:00 [只看该作者]

<dialog open>标签定义对话框或窗口</dialog>
六楼的代码获取到的时<dialog>标签里的内容
<iframe>标签是内联框架,始终没有办法获取,
在百度里查了一下,也有相同的提问,但解决方法好像都是 JS 里的
[此贴子已经被作者于2021/1/19 19:20:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/19 20:11:00 [只看该作者]

网页文件发上来测试

 回到顶部
总数 13 1 2 下一页