从 iframe 访问父级 URL
使用 iframe 时,通常需要从 iframe 内访问父级页面的 URL。但是,如果 iframe 和父页面不在同一子域上,这可能会出现问题。
跨站脚本和子域
跨站脚本 (XSS) )在用户信任的网页上执行恶意脚本时就会发生。为了防止XSS,我们实施了更严格的安全措施,并且这些措施延伸到了iframe。
如果iframe和父页面不在同一个子域,即使它们在同一个域,也会认为访问跨站点脚本编写。因此,使用以下技术从 iframe 检索父页面的 URL 将导致访问被拒绝错误。
parent.document.location parent.window.location
访问浏览器 URL
虽然不可能直接访问父页面的 URL,但有一种解决方法可以获取浏览器的 URL,即主页的 URL。为此:
此代码检查 iframe 和父页面是否不在同一 URL 上。如果它们不同,它会使用 document.referrer 来获取链接到 iframe 的页面的 URL。否则,它使用 document.location.href 获取当前(iframe)文档的 URL。
var url = (window.location != window.parent.location) ? document.referrer : document.location.href;
附加说明
window.parent.location 是允许,避免安全错误。
以上是如何从不同子域上的 Iframe 访问父 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!