2013-01-16 105 views
0

我想实现下面的目标。我希望通过点击一个按钮来获取在一个输入中输入的域名并将其加载到iframe中。我有什么麻烦是我在加载iframe中的特定网站后,我怎么能在iframe中获取加载网站的DOM?我需要通过单击它从iframe中新加载的站点保存我选择的元素的确切路径。任何帮助将非常感激。谢谢。获取iframe加载后的内容

回答

1

您可以通过contentDocument属性访问的内容。

var iFrameContent = $('myIFrame')[0].contentDocument; 
$(iFrameContent).find('.mySelector').text(); 

我还要指出,如果访问该的src是来自同一个域作为脚本的的内容只能做。如果的src来自任何其他域,则浏览器将拒绝访问内容。

这是CORS的考虑因素。

UPDATE:

要解决的CORS限制,你必须写这就是的src的URL的服务器端代理(它可能是很简单)。

如果我做在ASP.Net是这样的(作为一个例子),我会写一个Web服务:

  1. 采取实际的URL作为String参数。
  2. 使用HTTPWebRequest对象(或类似的)来获取URL内容。
  3. 将其返回到浏览器。

然后,你可以设置你的 src为“http://mysite.com/getURLService?url=www.lalala.com”而获得的内容,因为内容是现在“http://mysite.com”交付。

+0

呃......这就是问题所在,它不是用相同的域名,我在域名上做这件事,我在iframe中加载了另一个站点......比如www.lalala.com,我想获取它的DOM,不是我的......有没有可能发生的事情? –

+0

@LachezarRaychev:更新回答。 – pete

0

您使用.contents()

like $("iframe").contents().find();

+0

为了记录您可以使用contents()来获取iframe的内容。它在jQuery文档中是这样说的,而且我自己多次完成它。 –