以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何获取嵌套网页中HTML里的元素?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160066)

--  作者:304376480
--  发布时间:2021/1/19 12:03:00
--  如何获取嵌套网页中HTML里的元素?
老师您好!
在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编辑过]

--  作者:有点蓝
--  发布时间:2021/1/19 12:14:00
--  
document.getElementById(\'dialog-body\').contentWindow.document.getElementById(\'content\')

--  作者:304376480
--  发布时间:2021/1/19 14:28:00
--  

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

--  作者:有点蓝
--  发布时间:2021/1/19 14:34:00
--  
WindowFrameElement:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.htmlwindow.windowframeelement?view=net-5.0&viewFallbackFrom=dotnet-uwp-10.0
--  作者:304376480
--  发布时间:2021/1/19 15:06:00
--  
还是不会用,
在我定义一下变量,列出完整代码吧!图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2021/1/19 16:36:00
--  
是不是有多个框架?
msgbox(web.Document.Window.Frames.count)

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

--  作者:有点蓝
--  发布时间:2021/1/19 20:11:00
--  
网页文件发上来测试