首页 新闻 会员 周边 捐助

webbrowser获取点击IFrame里面的URL

0
悬赏园豆:20 [已关闭问题]

我先是通过elementFromPoint(point.X,point.Y)得到了Iframe的Element.然后我得到了IFrmae的IHTMLDocuments但是再通过elementFromPoint(point.X,point.Y)得到的内容已经乱了。是不是坐标出了问题呀,非iframe里的正常。处理IFrame里面的URL好复杂呀。

神奇的科比的主页 神奇的科比 | 初学一级 | 园豆:180
提问于:2010-02-26 16:27
< >
分享
其他回答(1)
0

估计iframe中的elementFromPoint(point.X,point.Y)取到的信息是相对位置。

风影极光 | 园豆:1573 (小虾三级) | 2010-02-26 16:34
0

跨域的IFrame可能会有安全性的问题,以下代码仅供参考。


1.获取frame的源文件

MessageBox.Show(webBrowser1.Document.Window.Frames["main"].Document.Body.InnerHtml);

2.获取frame的HTMLDocument接口

HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
object j;
for (int i = 0; i < doc.parentWindow.frames.length; i++)
{
      j = i;
      HTMLWindow2Class frame = doc.parentWindow.frames.item(ref j) as HTMLWindow2Class;
      if (frame.name == "main")
       {                  
             MessageBox.Show(frame.document.title);                   
       }
}     

3.获取frame的IHTMLDocument2接口

IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.Window.Frames["main"].Document.DomDocument;

4.取得frame中被点击的连接

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
     string url = webBrowser1.Document.Window.Frames["main"].Document.ActiveElement.GetAttribute("src");
}

查尔斯 | 园豆:3832 (老鸟四级) | 2010-02-26 23:51
上面的回答我也试过,根本不能获得它的链接。 string url = webBrowser1.Document.Window.Frames["main"].Document.ActiveElement.GetAttribute("src"); 而且"main"怎么获得呢?我是随机点击链接的。得到的element元素没有name这个属性。而且好多iframe上是没有name的。 不过不是谢谢你的回答。
支持(0) 反对(0) 神奇的科比 | 园豆:180 (初学一级) | 2010-03-01 20:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册