2011-07-02 137 views
1

我有一个页面在iframe中显示不同的网站(比如www.cnn.com)。(HTML/javascript)处理跨域iframe

我想要的所有内容都是在父窗口中打开iframe中的链接,而不是在框架内打开。

我知道这通常是不可能的,出于安全原因,这对我很有意义。但是,我正在处理的页面不会公开,而只会在我的私人计算机上公开,如果我必须关闭某些安全功能才能使其工作,那就没问题。

有没有什么办法可以做到这一点?

我一直在梳理整个网络的解决方案。如果我在这里或其他地方错过了一个帖子,请将它指向我。

我在Firefox(我正在使用)阅读它,如果脚本是“签名”(或特定的配置条目发生更改),可以在JavaScript中获得扩展权限。但是,我不知道如何利用这些扩展权限来达到我的目的......任何提示?

我也会考虑不同的方法,例如,根本不使用iframe。无论采用哪种方法,我都希望能够在一页内嵌入几个我无法控制的网站。在任何嵌入式网站中点击的链接都应该在父窗口中打开。这本应该是我自己的方便工具。我应该说,我基本上没有JavaScript的知识,只是在干中学。如果你可以自信地说任何客户端方法都不可能实现我想要的功能,那也是有帮助的。我想这样做会很直接,比如说与PHP,但我不想设置一个Web服务器,如果没有必要。感谢您的任何提示!

回答

1

这有点不同于您所要求的解决方案,但可能是更好的方法来解决问题,因为它可以让您在不损害任何正常的Web安全性的情况下寻找您的能力。

我不知道Greasemonkey(适用于Firefox和其他浏览器的附件)可能对您有用,因为它允许您针对其他页面运行本地JavaScript以在本地修改它们,而不管正常的安全限制如何。所以,你可以运行CNN页面中的所有链接,并修改它们,如果这是你需要做的。

要使用它,您需要将Firefoxmonkey加载项安装到Firefox中,编写一个脚本,以您想要的方式修改CNN.com,将该脚本安装到Greasemonkey中,然后将该脚本定位到网页CNN。 COM。我认为它应该在该网站上工作,无论它是否在iframe中,但是如果需要,脚本可能会检测它是否在iframe中。

+0

谢谢,Greasemonkey的是一个好主意!我会试试看。 – Matt