我有一个在iframe中显示的页面。
我需要从该页面(子页面)获取带有js的parent.location.url。
两个网站都位于不同的域中。
我正在尝试:
警报(parent.location.url)
但是我收到了这个错误:
http://parentdomain从http://childdomain获取属性Location.URL的权限被拒绝。
????有可能吗?
答案 0 :(得分:72)
试试这个:
var referrer = document.referrer;
alert(referrer);
答案 1 :(得分:7)
你本来想做的事情本身是不可能的。除非您可以控制父页面调用子页面。如果这样做,则可以在父页面的URL中使用get语句调用子页面。因此,如果您的父页面是http://parentpage.com,那么您应该如何调用iFrame。
<iframe src='http://childpage.com/?parent=http://parentpage.com' />
然后你在子页面中要做的就是获取引用是用
获取字符串window.location.search //not sure of browser compatibility with this
并通过从该字符串中抓取来提取父页面的URL。我会提供更多细节,但我甚至不确定我的第一个问题。
答案 2 :(得分:4)
你有没有试过像:
alert(window.top.location.href);
答案 3 :(得分:2)
如果父页面和iframe位于同一个域中,则仅才能正常工作。如果他们不在同一个域中,您可以尝试通过 src 传递该位置,就像麦迪逊威廉姆斯建议的那样。
这可能就是为什么你得到“Permission denied ...”
答案 4 :(得分:2)
您将能够像这样找到它,并且所有浏览器都应该能够支持它:
query = window.parent.location.search.substring(1);
你不应该得到权限错误,但我可能错了。
答案 5 :(得分:1)
尝试:
var pathname = window.parent.location.href
答案 6 :(得分:1)
使用postMessage在窗口之间来回传递数据。它有点笨拙,但是当窗户在原点之间进行通信时需要它。