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

k10*_*102 23 javascript iframe

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

在这个网站上有一个iframe,这iframe是一个简单的js代码,它加载另一个js(client.js) - 这个代码在我的域上.

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

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

dec*_*eze 33

document.referrer为您提供链接到当前页面的页面的URI.这是一个可用于所有页面的值,而不仅仅是帧.

window.parent为您提供父框架,它location是它的URI.

如果要查找父框架的URI,请使用window.parent.location.


SWi*_*ilk 12

主要区别在于,document.referrer将指向链接到iframe内当前页面的页面.如果您的iframe内容包含允许浏览几个页面的链接,那么只有iframe中加载的第一个页面将具有父框架URI document.referrer.通过单击iframe内部的链接加载的每个页面都将包含该页面的uri document.referrer.

同时window.parent.location将始终在父窗口中包含页面的URI,但只有在站点原点相同时才可访问它.阅读有关放松网站来源政策的信息,了解您和您的客户网站应该做什么,以便您可以访问数据.

话虽这么说,我宁愿给你的客户端提供类似服务密钥或令牌的东西,这将授权他的网站使用你的iframed应用程序,并且会将呼叫者作为你的客户端进行身份验证,这样你就可以知道该呼叫来自他的网站.