IFrame 从不同域上的父 url 获取参数

IFrame get parameters from parent url on different domain

本文关键字:url 获取 参数 IFrame      更新时间:2023-09-26
默认情况下这似乎

是不可能的,因为我错误地阻止了原点为 x 的帧访问原点为 y 的帧。我知道这是出于安全性,但我希望合作伙伴允许集成我的 iframe。Iframe 位于域 mysubdomain.mysite.com 上,包含搜索框。用户进行搜索后,它已被重定向到页面 partners-domain-containing-search-results.com 搜索结果也在域 mysubdomain.mysite.com 上,我想从 url 读取参数(哈希和查询字符串参数),但我不能,因为我无法读取父 url 参数(从 partners-domain-containing-search-results.com)。

您应该能够使用 subdomain.mysite.com 中的top.location来读取 partners-domain-containing-search-results.com 的父 url:

例如,从托管在 mysubdomain.mysite.com 上并嵌入在合作伙伴域包含搜索结果中的iframe.com?hello=true#blabla,您应该能够运行:

top.location.hash
>"#blabla"
top.location.search
>"?hello=true"

注意:您无法修改其他域的位置对象,否则您将看到:

未捕获的安全错误:阻止了具有原点的帧 "http://domain2.com"访问具有原点的帧 "http://domain.com"。协议、域和端口必须匹配。