在后台打开新选项卡而不进行焦点切换
在这个问题中,用户寻求在单独的选项卡中打开新选项卡不会导致任何焦点转移到新选项卡。他们演示了使用 open() 和 focus() 方法的尝试,但在返回 Chrome 中的当前选项卡之前遇到了新选项卡的短暂闪烁。
但是,提供的答案提供了使用事件的替代解决方案
自定义事件调度
实现此行为的关键在于动态创建一个 元素并将其 href 属性分配给所需的网址。随后,创建一个事件(在本例中为鼠标单击)并使用特定参数(包括“ctrl”键修饰符)进行初始化。这模拟了单击链接时按住“ctrl”键的操作,这是在后台打开新选项卡的默认行为。
实现
提供的代码举例说明了这种技术:
function openNewBackgroundTab(){ var a = document.createElement("a"); a.href = "http://www.google.com/"; var evt = document.createEvent("MouseEvents"); //the tenth parameter of initMouseEvent sets ctrl key evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); a.dispatchEvent(evt); }
结论
通过利用事件模拟,该解决方案有效地在后台打开一个新选项卡,而不影响当前选项卡的焦点。此技术对于浏览器扩展或小书签特别有用,其中保持对当前选项卡的关注对于无缝用户体验至关重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3