如何使用target="_blank"打开多个独立新标签页,避免复用?
如何让每个链接在独立新标签页打开(避免复用)
当然可行,下面是两种可靠的实现方法:
方法1:给每个链接设置唯一的target属性值
不用统一使用_blank,给每个链接的target指定独一无二的名称(比如序号、自定义标识),浏览器会将每个唯一的target值对应为独立标签页,不会复用已有标签。
示例代码:
<a href="page1.html" target="tab_1">页面1</a> <a href="page2.html" target="tab_2">页面2</a> <a href="page3.html" target="tab_3">页面3</a> <!-- 以此类推,保证每个target值唯一即可 -->
方法2:用JavaScript的window.open()指定唯一窗口名
如果需要动态生成链接或更灵活的控制,可以通过JS绑定点击事件,调用window.open()时传入唯一的窗口名称参数,确保每个链接打开独立标签页。
示例代码:
<!-- HTML部分 --> <a href="page1.html" class="unique-tab">页面1</a> <a href="page2.html" class="unique-tab">页面2</a> <a href="page3.html" class="unique-tab">页面3</a> <!-- JavaScript部分 --> <script> // 给所有目标链接绑定点击事件 document.querySelectorAll('.unique-tab').forEach((link, idx) => { link.addEventListener('click', function(e) { e.preventDefault(); // 阻止默认跳转行为 // 用索引生成唯一窗口名,确保每个链接对应不同标识 window.open(this.href, `unique_tab_${idx}`); }); }); </script>
注意事项
- 浏览器弹出窗口拦截机制:用户主动点击触发的
window.open()(如上述绑定在点击事件中的场景)一般不会被拦截;但自动触发(如页面加载时调用)大概率会被拦截。 - 部分浏览器的个性化设置可能影响默认
_blank行为,使用唯一target值或指定唯一窗口名是最稳妥的方案,能绕过这类浏览器策略。
内容的提问来源于stack exchange,提问作者SimonT
相关产品推荐
相关产品推荐

