跨域和iFrame

时间:2011-12-07 19:01:02

标签: javascript iframe cross-domain postmessage

我正在尝试一些我真的无法弄清楚的事情。我有一个iFrame从另一个我没有电源的域加载一些内容。我“简单”尝试做的是获取iFrame的内容以在PHP / Javascript中使用它。这是我遇到“跨域”问题的地方。我无法访问iFrame的内容。太令人沮丧了。

所以我阅读并阅读了一些有关HTML5提供的“postMessage()”函数的内容。我看到了这个系统的解决方案,但我仍然无法想到一点。基本上,它适用于发件人和听众。所以我需要在iframe中有一个监听器,当触发时,它会将内容发送回主窗口。

但如何在已加载的iFrame中添加一些代码而不删除内容?

我真的不需要使用postMessage(),只要能得到这个该死的内容,我就可以做任何事情!

任何建议表示赞赏!

谢谢!

2 个答案:

答案 0 :(得分:0)

不会有这样的帮助:

function getContentFromIframe(iFrameName)
{

    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;

    //Do whatever you need with the content    

}


答案 1 :(得分:0)

这仍然是不可能的,而且有充分的理由!

要使用客户端的cookie从另一个域读取,IP和凭据要求被查看的页面以某种方式公开信息 - 这是与监听器(外部页面)和发件人(IFrame)一起工作的双向对话。 p>

这是必需的原因:想象一下,制作一个占据页面100%的IFrame。您可以在IFrame中显示常用网站的登录表单,但拦截击键/输入框更改并记录它们。用户只有在检查URL时才会知道差异。

如果您可以控制用户的浏览器,您可以使用GreaseMonkey的跨域AJAX来获取IFrame的内容(假设Firefox / Chrome)