搜索跨域iFrame?

时间:2011-08-29 01:10:21

标签: javascript jquery iframe

  

可能重复:
  need to run javascripts on iframe which loads an external domain

这似乎不应该是一个困难的问题,但显然它是。

我只是有一个简单的页面,它使用iFrame来合并另一个位于不同服务器上的网站(例如cnn.com)。

现在在父页面上,我只是希望能够在iFrame中搜索某个单词并告诉我该单词是否出现在iFrame页面上。例如,如果cnn.com是我的iframe页面,我可能希望父页面告诉我iframe页面上是否出现“Irene”一词。到目前为止,我无法让它发挥作用。

这可能吗?是否被同一原产地政策禁止? 任何解决方案的建议?

我很感激!

4 个答案:

答案 0 :(得分:0)

父页面无法访问IFRAME的内容,如果重要,则无法访问任何帧。否则,您可以在框架中打开任何页面,例如您的Facebook个人资料,并在恶意网站上阅读内容。

如果你想操纵IFRAME中发生的事情,你需要控制远程站点并在那里注入搜索逻辑。

答案 1 :(得分:0)

由于same origin policy,您无法使用JavaScript。

您可以访问内容的唯一方法是使用服务器上的代理抓取页面并在您的域中重新显示该页面。

答案 2 :(得分:0)

由于许多安全原因,这是不可能的。

本文可能会为您提供更多见解

http://softwareas.com/cross-domain-communication-with-iframes

答案 3 :(得分:0)

对于安全问题,您无法访问浏览器内部的iframe内容。

如果您完全放心,可以使用cross domain jQuery plugin

然后,您可以使用yahoo的服务器作为代理执行以下操作。

$('#container').load('http://google.com'); // SERIOUSLY!

$.ajax({
    url: 'http://news.bbc.co.uk',
    type: 'GET',
    success: function(res) {
        var headline = $(res.responseText).find('a.tsh').text();
        alert(headline);
    }
});

詹姆斯·帕德尔西(James Padolsey)在博客上发表了here