小编典典

从 iframe 访问父 URL

all

好的,我有一个页面,在这个页面上我有一个 iframe。我需要做的是在 iframe 页面上,找出主页的 URL 是什么。

我四处搜索,我知道如果我的 iframe 页面位于不同的域上,这是不可能的,因为那是跨站点脚本。但是我读过的所有地方都说,如果 iframe
页面与父页面在同一个域上,那么它应该可以工作,例如:

parent.document.location



parent.window.document.location



parent.window.location



parent.document.location.href

…或其他类似的组合,因为似乎有多种方法可以获取相同的信息。

无论如何,这就是问题所在。我的 iframe 与主页在同一个域上,但它不在同一个 SUB 域上。所以例如我有

http://www.mysite.com/pageA.html

然后我的 iframe URL 是

http://qa-www.mysite.com/pageB.html

当我尝试从pageB.html(iframe 页面)获取 URL
时,我不断收到相同的访问被拒绝错误。所以看起来即使是子域也算作跨站点脚本,这是正确的,还是我做错了什么?


阅读 94

收藏
2022-06-04

共1个答案

小编典典

你是对的。使用 iframe 时,子域仍被视为单独的域。可以使用
传递消息postMessage(...),但是故意使其他 JS API 无法访问。

仍然可以根据上下文获取 URL。有关更多详细信息,请参阅其他答案。

2022-06-04