javascript - 如何使用 Firefox 扩展程序转到特定选项卡
问题描述
我正在创建一个 Firefox 扩展。它会打开一个新选项卡,然后稍后将其关闭。当新标签关闭时,我想回到原来的标签,而不是最右边的标签。这是我到目前为止所拥有的,它总是在最右边。
function openNewTab(tabs) {
let tab = tabs[0];
browser.tabs.create({"url": tab.url});
}
function closeTab(tabs) {
let tab = tabs[0];
browser.tabs.remove(tab.id);
}
function onError(err){
console.error(err);
}
function openAndClose() {
var mytab = browser.tabs.query({currentWindow: true, active: true}).then(openNewTab, onError);
setTimeout(function () {
var closeIt = browser.tabs.query({currentWindow: true, active: true}).then(closeTab, onError);
}, 1000);
}
browser.browserAction.onClicked.addListener(openAndClose);
给定选项卡 ID 或选项卡索引,我如何激活或转到该特定选项卡?
解决方案
您需要窗口和选项卡更新功能。只要在创建新选项卡时保持窗口焦点,就可以忽略窗口焦点。(如您的代码示例中所示)
- https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows/update
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update
browser.tabs.query({}, function(tabs) { for (var i=tabs.length-1; i>=0; i--) { if (tabs[i].id == myTabID) { browser.windows.update(tabs[i].windowId, {focused: true}); //focus window browser.tabs.update(tabs[i].id, {active: true}); //focus tab break; } } });
推荐阅读
- python-3.x - For循环:count = [0 for i in range(1000)]
- javascript - 更新对象数组中的属性
- python - Python将图像从URL保存到具有自定义名称和结构的不同文件夹
- coq - coq中的自然数列表
- c++ - MatplotLib-cpp 错误:显示意外不是 PyFunction
- ios - Spritekit 上双重生成(和重叠)敌人
- javascript - 检索 HTMLTableRowElement 的 tr 元素的值
- java - 如何让我的 Java 服务器在世界各地都可用?
- sql - 如何在 SQL Server 中编辑当前记录和以前的记录
- structr - 处理以不同语言编写的自定义模式方法之间的参数和返回值