由于安全限制,无法在javascript中直接获取当前iframe的网址。 有没有办法超越这个限制?
使用ActiveX控件?
更改浏览器的安全选项?
使用HTML5?
使用flash?
使用服务器端脚本?
答案 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