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

新手上路,请多包涵

情况是这样的:有一个站点,它属于客户,所以它不在我的域中,比方说 client.com

在这个网站上有一个 iframe ,这个 iframe 的来源是一个简单的js代码,它加载了另一个js( client.js -28-9b25领域。

我需要做的是获取 iframe 所在页面的确切 url。所以现在我想弄清楚 document.referrerwindow.parent.location.href 之间的区别,但没有运气。

两者都给我我所需要的,但我不知道哪个更可靠?是否存在一种情况,其中一个可以工作而另一个不能?

原文由 k102 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 834
2 个回答

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

window.parent 为您提供父 _框架_,其 location 是其 URI。

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

原文由 deceze 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

同时 window.parent.location 将始终包含父窗口页面的URI,但只有站点来源相同才能访问。阅读有关 放宽网站来源政策 的信息,了解应在您和您的客户网站上执行哪些操作,以便您可以访问数据。

话虽这么说,我宁愿给你的客户一些服务密钥或令牌之类的东西,这将授权他的网站使用你的 iframed 应用程序,并将调用者身份验证为你的客户,这样你就可以知道调用来自他的网站.

原文由 SWilk 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题