如何用HTML或JavaScript打开非激活状态的新标签页?
在后台打开新标签页并保持原页面焦点
首先明确:没有原生HTML属性能直接实现这个需求,浏览器默认target="_blank"就是会激活新标签页,这是出于用户体验和安全策略的设计。不过可以用JS技巧尝试实现,虽然没法保证在所有浏览器/场景下都生效:
方法:通过JS控制窗口焦点
先打开一个空白新窗口,再给它设置目标URL,最后强制原页面重新获取焦点:
function openBackgroundTab(url) { const newTab = window.open('', '_blank'); if (newTab) { newTab.location.href = url; // 让原页面抢回焦点 window.focus(); } }
然后把原a标签改成调用这个函数:
<a href="javascript:void(0)" onclick="openBackgroundTab('https://example.com')">Example</a>
注意事项
- 这个方法依赖浏览器对
window.focus()的支持,部分现代浏览器为了防止焦点劫持,可能会忽略这个调用,导致新标签页依然被激活。 - 必须是用户主动触发的事件(比如点击)才能执行这个函数,如果是自动执行(比如页面加载完成后调用),浏览器会直接阻止,甚至拦截新窗口。
- 不同浏览器的行为差异很大,比如Firefox相对更容易允许这种焦点切换,Chrome则限制更严格。
内容的提问来源于stack exchange,提问作者boketeボケて
相关产品推荐
相关产品推荐

