如何在javascript中获取iframe的URL?

时间:2010-11-02 18:43:23

标签: javascript iframe

由于安全限制,无法在javascript中直接获取当前iframe的网址。 有没有办法超越这个限制?

  1. 使用ActiveX控件?

  2. 更改浏览器的安全选项?

  3. 使用HTML5?

  4. 使用flash?

  5. 使用服务器端脚本?

2 个答案:

答案 0 :(得分:2)

  

由于安全限制

,无法在javascript中直接获取当前iframe的网址

如果您的意思是跨域IFrame,而您无法控制相关页面,那么这是正确的。

据我所知,不,没有办法解决这个问题。

我能想到的唯一方法 - 你不想走这条路 - 通过本地服务器脚本代理iframe中的每个页面,重写每个页面中的每个链接和操作以通过代理,太。但这非常困难,需要注意一些事情,而且不是一个真正的选择 - 如果以这种方式代理,很多现代网站都会破坏。

答案 1 :(得分:0)

据我了解,如果您无法控制框架,您不应该知道此框架中发生了什么。所以,知道这将是一个安全漏洞,应该修复。浏览器的设计目的是不允许页面监视您在另一个页面中执行的操作。

如果您可以控制iFrame,那么您可以选择一些选项

这里有一个讨论: How do I get the current location of an iframe?

基本上 var iframe = document.getElementById('loader')。src

如果iframe位于同一服务器上,您实际上可以获取该位置。如果它位于不同的服务器上,唯一的方法就是像某些网站那样重写URL。虽然不容易做到

您还可以进行HTML5跨窗口通信: http://ajaxian.com/archives/cross-window-messaging-with-html-5-postmessage