Webbrowser 如何获得Frame/IFrame的当前页面地址?
一个Webbrowser,浏览一个带框架的网站,如bbs.csdn.net.你再进入熟悉的VB子论坛,此时右侧框架显示了VB子论坛的帖子列表,右击页面,可以得到右侧框架页面的地址:http://forum.csdn.net/BList/VB/
此时我得到了Webbrowser的Document对象,为WBDom,同时我还得到了右侧的Frame对象,ValidElement,它的Name属性为ContentFrame.
现在我要转到右侧框架内的页面做一些处理,需要将Webbrowser引导至右侧框架的页面地址,我要怎样才能得到这个框架的页面地址呢?(框架的此时的页面地址并不一定是初始框架地址,即框架的Src属性)
在不转入到框架内页面的情况下,有没有办法得到这个右侧的框架对象呢?(MSHTML.HTMLFrameElement对象),或得到这个右侧框架的Document对象.
我尝试过的办法
当鼠标移到右侧框架上方时,用Document.ElementFromPoint方法得到一个MSHTML.HTMLFrameElement对象(同样也是HTMLElement对象),假设为ObjFrame.
我尝试输出ObjFrame.Src,objFrame.Document.Location,ObjFrame.Document.Location.href,得到的都是地址栏中的地址,即父层地址,而不是框架内页面的实际地址.
而我用Webbrowser1.Document.ContentFrame.Location,却能得到正确的地址(假设ContentFrame为右侧框架的名字).但是问题并没有得到完全的解决,因为这种方法并不一定奏效,只对某些网站有效(不知道为什么),像bbs.csdn.net就无效.
[最优解释]
取得顶层document的所有frame的集合:Webbrowser1.Document.frames,然后一层层往下遍历吧。
[其他解释]
有些地址是经过映射的,防止别人扒拉东西
[其他解释]
楼主把代码放来看看,我来学习学习
[其他解释]