Да, вы можете сделать это, вы можете сделать это, используя функцию chrome.tabs.update(..)
, вот пример, это обновит вкладку, на которой был выбран ваш элемент контекстного меню:
function selectionHandler (info, tab) {
chrome.tabs.update(tab.id, {
url : "https://my.salesforce.com/apex/BR_caseRedirectDependingLicense?number="+info.selectionText.replace(/\D/g,''),
active : true
});
}
Если Если вы хотите сначала создать новую вкладку, а затем продолжать ее обновлять, вы можете использовать что-то вроде этого:
let tabId = -1;
function doSearch (search_target, tab)
{
const tabDetails = {
url : "https://my.salesforce.com/apex/BR_caseRedirectDependingLicense?number="+search_target.replace(/\D/g,''),
active : true,
index : tab.index + 1
};
if (tabId == -1) {
chrome.tabs.create(tabDetails, tab => {
tabId = tab.id;
});
} else {
// check if tab is still around
chrome.tabs.get(tabId, (tab) => {
if (tab) {
chrome.tabs.update(tab.id, tabDetails);
} else {
chrome.tabs.create(tabDetails, tab => {
tabId = tab.id;
});
}
});
}
}
Вот документация chrome .tabs API рядом с этими двумя примерами , вы также можете посмотреть chrome.tabs.query(..)
, вы можете использовать это, чтобы найти конкретную c вкладку.
Кроме того, во всех этих примерах я использовал active
вместо selected
, поскольку selected
устарело.