document.referrer和window.parent.location.href之间的区别

时间:2013-05-07 07:50:25

标签: javascript iframe

情况如下:有一个网站,它属于客户端,所以它不在我的域名上,让我们说client.com

在此网站上有一个iframe,此iframe的来源是一个简单的js代码,它会加载另一个js(client.js) - 此代码位于我的域中。< / p>

我需要做的是获取iframe所在网页的确切网址。所以现在我试图找出document.referrerwindow.parent.location.href之间的区别而没有运气。

两者都给了我我需要的东西,但我无法意识到什么更可靠?是否存在一种情况,一种情况会发挥作用而另一种情况不会发生?

2 个答案:

答案 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应用程序,并且会将呼叫者作为你的客户端进行身份验证,这样你就可以知道呼叫是来自他的网站。