从 iFrame 访问父级 URL:限制和解决方法
从 iFrame 访问父级框架的 URL 可能是一项挑战,特别是在iFrame 位于不同的子域上。这是由于跨站脚本 (XSS) 预防措施所施加的安全限制。
从与父框架相同的域和子域访问 iFrame 时,可以使用诸如 Parent 之类的表达式直接访问父级的位置.document.location 或parent.window.location。但是,正如用户所强调的,当 iFrame 位于不同的子域上时,此方法会失败。
为了进一步说明这一点,请考虑 pageA.html 托管在 http://www.mysite 上提供的示例.com/ 和 pageB.html(iFrame)托管在 http://qa-www.mysite.com/ 上。尝试从 pageB.html 检索父级的 URL 将触发访问被拒绝错误。这证实了子域也受到跨站点脚本限制。
虽然在这些情况下禁止直接访问父域的 URL,但有一个可以使用的解决方法。要获取父框架的 URL,可以使用以下 JavaScript 代码:
var url = (window.location != window.parent.location) ? document.referrer : document.location.href;
注意:
以上是如何从不同子域上的 iFrame 获取父页面的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!