一尘不染

从iframe访问父网址

javascript

好的,我有一个页面,在此页面上有一个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网址是

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

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


阅读 196

收藏
2020-04-25

共1个答案

一尘不染

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

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

2020-04-25