You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何MV3扩展中chrome.tabs.create设active:false在移动Chromium仍激活新标签?

移动Chromium扩展后台打开标签被强制前台激活的解决办法

问题根源

像Kiwi这类支持扩展的移动Chromium浏览器,对chrome.tabs.create的active: false参数兼容性不佳,会强制将新创建的标签切换为前台激活状态,和桌面Chrome的行为不一致。

可行解决方案

通过先记录当前激活标签ID,创建新标签后重新激活原标签的方式绕过这个限制,具体代码如下:

// 获取当前处于激活状态的标签
chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
  const originalTabId = tabs[0].id;
  // 创建目标标签(即使被强制激活,后续再切回原标签)
  chrome.tabs.create({url, active: false, pinned: false}, () => {
    // 重新激活原来的标签,恢复焦点
    chrome.tabs.update(originalTabId, {active: true});
  });
});

说明

  • 这种方式利用API执行顺序,先完成新标签创建(可能短暂切换到前台),但立即将原标签设为激活状态,用户几乎不会察觉到焦点变化。
  • 正常场景下当前激活标签必然存在,无需额外处理originalTabId为空的情况,若需兼容极端场景可添加判断。

备选方案(针对部分特殊浏览器)

如果上述方法仍有问题,可尝试通过窗口聚焦状态来恢复原页面:

chrome.windows.getCurrent((currentWindow) => {
  chrome.tabs.create({url, active: false}, () => {
    chrome.windows.update(currentWindow.id, {focused: true});
  });
});

内容的提问来源于stack exchange,提问作者Patryk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:17:17