target="_blank"场景下window.opener失效问题及解决方案分享
window.opener 在 target="_blank" 场景下失效的解决方案(附.htaccess方案征集)
2020/2021年现代浏览器完成安全更新后,一个头疼的问题出现了——通过target="_blank"从站点打开新链接时,子页面的window.opener功能基本无法正常运行。我折腾了许久寻找解决办法,曾尝试通过.htaccess恢复原有运行机制,但未获成功,现在分享找到的可行解决方案,同时诚邀各位提供有效的.htaccess配置方案。
已验证的前端解决方案
- 若需要保留
window.opener功能,给链接添加rel="opener"属性,明确告知浏览器允许子页面访问父页面的window.opener:<a href="your-link-url" target="_blank" rel="opener">打开新页面</a> - 如果不需要
window.opener(更安全的做法,可避免反向劫持风险),用rel="noopener noreferrer"彻底禁用该功能:<a href="your-link-url" target="_blank" rel="noopener noreferrer">打开新页面</a>
征集.htaccess全局配置方案
之前尝试通过.htaccess配置全局恢复window.opener的默认行为,但未成功。如果有通过服务器端配置实现全局处理的方案,欢迎在评论区分享。
内容的提问来源于stack exchange,提问作者XXL-Webdesign
相关产品推荐
相关产品推荐

