情况如下:有一个网站,它属于客户端,所以它不在我的域名上,让我们说client.com
。
在此网站上有一个iframe
,此iframe
的来源是一个简单的js代码,它会加载另一个js(client.js
) - 此代码位于我的域中。< / p>
我需要做的是获取iframe所在网页的确切网址。所以现在我试图找出document.referrer
和window.parent.location.href
之间的区别而没有运气。
两者都给了我我需要的东西,但我无法意识到什么更可靠?是否存在一种情况,一种情况会发挥作用而另一种情况不会发生?
答案 0 :(得分:30)
document.referrer
为您提供链接到当前页面的页面的URI。这是一个可用于所有页面的值,而不仅仅是帧。
window.parent
为您提供父框架,其location
是其URI。
如果要查找父框架的URI,请使用window.parent.location
。
答案 1 :(得分:10)
主要区别在于document.referrer
将指向链接到iframe内当前页面的页面。如果您的iframe内容包含允许浏览几个页面的链接,那么只有iframe中加载的第一个页面的父框架URI将为document.referrer
。
通过点击iframe内部的链接加载的每个页面都将包含document.referrer
中包含链接的页面的uri。
同时window.parent.location
将始终在父窗口中包含页面的URI,但只有在站点原点相同时才可访问它。
阅读relaxing site origin policy,了解您和您的客户网站应该做些什么,以便访问数据。
话虽这么说,我宁愿给你的客户端提供类似服务密钥或令牌的东西,这将授权他的网站使用你的iframed应用程序,并且会将呼叫者作为你的客户端进行身份验证,这样你就可以知道呼叫是来自他的网站。