如何通过JavaScript设置Chrome打开新标签页不进入标签组
问题说明
Chrome更新后默认启用的标签组自动归类逻辑,会将与当前页面保留opener关联、同触发源打开的衍生标签自动归入当前标签所在组。纯前端JS无法突破浏览器用户级配置,但可以通过代码调整,在默认设置下实现新标签独立打开,不进入标签组。
你当前的代码存在逻辑冗余:a标签自带Google跳转地址,onclick事件又触发打开Bing页面,点击时会同时触发两个跳转,需要先修复这个冲突。
代码调整方案
调用window.open时传入第三个窗口特性参数,添加noopener、noreferrer配置,断开新标签和当前页面的opener关联,Chrome识别不到标签间的衍生关系时,就不会触发自动归组逻辑。同时阻止a标签的默认跳转行为,避免重复开页。
调整后代码:
<a href="http://bing.com" class="button-1" id="openBtn">Button</a> <script type="text/javascript"> document.getElementById('openBtn').addEventListener('click', function(e) { e.preventDefault(); window.open(this.href, '_blank', 'noopener,noreferrer'); }) </script>
局限性说明
- 上述方案仅在Chrome默认标签组配置下生效,如果用户手动开启了强制自动归组的实验功能,前端代码无法绕过该限制,需要用户手动调整浏览器配置:在地址栏输入
chrome://flags/#tab-groups-auto-create,将自动创建标签组的选项设为Disabled,重启浏览器即可。 - 仅给a标签加
target="_blank"无法实现效果,不带noopener参数的跳转依然会保留opener关联,会被Chrome判定为关联标签自动归组。
内容的提问来源于stack exchange,提问作者Bella Smith
相关产品推荐
相关产品推荐

