Beschrijving
Gebruik de chrome.tabs API om te communiceren met het tabbladsysteem van de browser. Met deze API kun je tabbladen in de browser maken, aanpassen en opnieuw rangschikken.
De Tabs API biedt niet alleen functies om tabbladen te manipuleren en te beheren, maar kan ook de taal van het tabblad herkennen, een screenshot maken en communiceren met de contentscripts van een tabblad.
Rechten
Voor de meeste functies heb je geen rechten nodig. Bijvoorbeeld: een nieuw tabblad maken, een tabblad opnieuw laden, naar een andere URL navigeren, enzovoort.
Er zijn 3 rechten waar ontwikkelaars rekening mee moeten houden als ze met de Tabs API werken.
- Het recht 'tabs'
Dit recht geeft geen toegang tot de naamruimte
browser.tabs. In plaats daarvan geeft het een extensie de mogelijkheid omtabs.query()aan te roepen voor 4 gevoelige eigenschappen optabs.Tab-instanties:url,pendingUrl,titleenfavIconUrl.{ "name": "My extension", ... "permissions": [ "tabs" ], ... }- Hostrechten
Met hostrechten kan een extensie de 4 gevoelige
tabs.Tab-property's van een overeenkomend tabblad lezen en opvragen. Ze kunnen ook rechtstreeks communiceren met de overeenkomende tabbladen via methoden zoalstabs.captureVisibleTab(),scripting.executeScript(),scripting.insertCSS()enscripting.removeCSS().{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }- Het recht activeTab
activeTabgeeft een extensie tijdelijke hostrechten voor het huidige tabblad als reactie op een aanroep door de gebruiker. In tegenstelling tot hostrechten activeertactiveTabgeen waarschuwingen.{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
Toepassingen
In de volgende gedeelten worden enkele veelvoorkomende use cases beschreven.
Een extensiepagina openen op een nieuw tabblad
Een veelvoorkomend patroon voor extensies is om een introductiepagina te openen in een nieuw tabblad wanneer de extensie wordt geïnstalleerd. In het volgende voorbeeld ziet u hoe u dit doet.
background.js:
browser.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
browser.tabs.create({
url: "onboarding.html"
});
}
});
Het huidige tabblad ophalen
In dit voorbeeld zie je hoe de serviceworker van een extensie het actieve tabblad kan ophalen uit het venster dat op dat moment de focus heeft (of het venster dat het laatst de focus had, als er geen Chrome-vensters de focus hebben). Dit is meestal het huidige tabblad van de gebruiker.
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
// `tab` will either be a `tabs.Tab` instance or `undefined`.
let [tab] = await browser.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
browser.tabs.query(queryOptions, ([tab]) => {
if (browser.runtime.lastError)
console.error(browser.runtime.lastError);
// `tab` will either be a `tabs.Tab` instance or `undefined`.
callback(tab);
});
}
Het geluid van het aangegeven tabblad uitzetten
In dit voorbeeld staat hoe een extensie de dempingsstatus voor een bepaald tabblad kan aan- of uitzetten.
async function toggleMuteState(tabId) {
const tab = await browser.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, {muted});
console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
browser.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
});
}
Het huidige tabblad naar de eerste positie verplaatsen als erop wordt geklikt
In dit voorbeeld zie je hoe je een tabblad verplaatst terwijl er misschien wel of niet wordt gesleept. In dit voorbeeld wordt browser.tabs.move gebruikt, maar je kunt hetzelfde wachtpatroon gebruiken voor andere aanroepen die tabbladen aanpassen terwijl er wordt gesleept.
browser.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await browser.tabs.move(activeInfo.tabId, {index: 0});
console.log("Success.");
} catch (error) {
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPosition(activeInfo), 50);
} else {
console.error(error);
}
}
}
browser.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (browser.runtime.lastError) {
const error = browser.runtime.lastError;
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
} else {
console.error(error);
}
} else {
console.log("Success.");
}
});
}
Een bericht doorgeven aan het contentscript van een geselecteerd tabblad
In dit voorbeeld zie je hoe de serviceworker van een extensie kan communiceren met contentscripts in specifieke browsertabbladen met tabs.sendMessage().
function sendMessageToActiveTab(message) {
const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
const response = await browser.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Voorbeelden van extensies
Ga naar een van de volgende bronnen voor meer demo's van extensies voor de Tabs API:
Typen
MutedInfo
De gedempte status van het tabblad en de reden voor de laatste statuswijziging.
Eigenschappen
-
extensionId
tekenreeks optioneel
De ID van de extensie die de dempingsstatus heeft gewijzigd. Niet ingesteld als een extensie niet de reden was waarom de gedempte status voor het laatst is gewijzigd.
-
gedempt
booleaans
Of het geluid van het tabblad is uitgezet (er kan geen geluid worden afgespeeld). Het tabblad kan worden uitgezet, zelfs als er geen geluid is afgespeeld of op dit moment geen geluid wordt afgespeeld. Komt overeen met of de audio-indicator Gedempt wordt getoond.
-
reden
MutedInfoReason optioneel
De reden waarom het geluid van het tabblad is aan- of uitgezet. Niet ingesteld als de dempingsstatus van het tabblad nooit is gewijzigd.
MutedInfoReason
Een gebeurtenis die een wijziging in de status van het geluid heeft veroorzaakt.
Enum
"user"
Een invoeractie van de gebruiker heeft de status Uitgezet ingesteld.
"capture"
Tabbladopname is gestart, waardoor de status is gewijzigd in gedempt.
"extension"
Een extensie, geïdentificeerd door het veld extensionId, heeft de status op gedempt gezet.
Tab
Eigenschappen
-
actief
booleaans
Of het tabblad actief is in het venster. Dit betekent niet noodzakelijkerwijs dat het venster de focus heeft.
-
audible
booleaans optioneel
Chrome 45+ browser.* sinds Chrome 148Of het tabblad de afgelopen seconden geluid heeft geproduceerd (maar het is misschien niet te horen als het ook is gedempt). Dit komt overeen met of de indicator voor de audio van de spreker wordt getoond.
-
autoDiscardable
booleaans
Chrome 54+ browser.* sinds Chrome 148Of het tabblad automatisch kan worden verwijderd door de browser als er weinig bronnen zijn.
-
verwijderd
booleaans
Chrome 54+ browser.* sinds Chrome 148Of het tabblad is verwijderd. Een verwijderd tabblad is een tabblad waarvan de content uit het geheugen is verwijderd, maar nog steeds zichtbaar is in de tabbladstrook. De content wordt opnieuw geladen als de extensie de volgende keer wordt geactiveerd.
-
favIconUrl
tekenreeks optioneel
De URL van de favicon van het tabblad. Deze property is alleen aanwezig als de extensie het recht
"tabs"heeft of hostrechten voor de pagina heeft. Het kan ook een lege tekenreeks zijn als het tabblad wordt geladen. -
vastgelopen
booleaans
Chrome 132+ browser.* sinds Chrome 148Of het tabblad is vastgezet. Een vastgezet tabblad kan geen taken uitvoeren, waaronder gebeurtenishandlers of timers. Het is zichtbaar in de tabbladstrip en de content wordt in het geheugen geladen. Het wordt ontdooid bij activering.
-
groupId
getal
Chrome 88 of hoger browser.* sinds Chrome 148De ID van de groep waartoe het tabblad behoort.
-
hoogte
number optioneel
De hoogte van het tabblad in pixels.
-
gemarkeerd
booleaans
Of het tabblad is gemarkeerd.
-
id
number optioneel
De ID van het tabblad. Tabblad-ID's zijn uniek binnen een browsersessie. In sommige omstandigheden wordt er geen ID aan een tabblad toegewezen, bijvoorbeeld als je externe tabbladen opvraagt met de
sessionsAPI. In dat geval kan er een sessie-ID aanwezig zijn. De tabblad-ID kan ook worden ingesteld opchrome.tabs.TAB_ID_NONEvoor apps en vensters met ontwikkelaarstools. -
incognito
booleaans
Of het tabblad zich in een incognitovenster bevindt.
-
index
getal
De op nul gebaseerde index van het tabblad in het venster.
-
lastAccessed
getal
Chrome 121+ browser.* sinds Chrome 148De laatste keer dat het tabblad actief werd in het venster, als het aantal milliseconden sinds het tijdperk.
-
mutedInfo
MutedInfo optioneel
Chrome 46+ browser.* sinds Chrome 148De gedempte status van het tabblad en de reden voor de laatste statuswijziging.
-
openerTabId
number optioneel
De ID van het tabblad dat dit tabblad heeft geopend, indien van toepassing. Deze property is alleen aanwezig als het tabblad van de opener nog bestaat.
-
pendingUrl
tekenreeks optioneel
Chrome 79 of hoger browser.* sinds Chrome 148De URL waarnaar het tabblad navigeert, voordat de navigatie is vastgelegd. Deze property is alleen aanwezig als de extensie het recht
"tabs"heeft of hostrechten heeft voor de pagina en er een navigatie in behandeling is. -
vastgezet
booleaans
Of het tabblad is vastgezet.
-
geselecteerd
booleaans
BeëindigdGebruik
tabs.Tab.highlighted.Of het tabblad is geselecteerd.
-
sessionId
tekenreeks optioneel
De sessie-ID die wordt gebruikt om een tabblad uniek te identificeren, verkregen via de
sessionsAPI. -
splitViewId
number optioneel
Chrome 140+ browser.* sinds Chrome 148De ID van de gesplitste weergave waartoe het tabblad behoort.
-
status
TabStatus optioneel
De laadstatus van het tabblad.
-
titel
tekenreeks optioneel
De titel van het tabblad. Deze property is alleen aanwezig als de extensie het recht
"tabs"heeft of hostrechten voor de pagina heeft. -
url
tekenreeks optioneel
De laatste vastgelegde URL van het hoofdframe van het tabblad. Deze property is alleen aanwezig als de extensie het recht
"tabs"heeft of hostrechten voor de pagina heeft. Kan een lege tekenreeks zijn als het tabblad nog niet is vastgelegd. Ga ook naarTab.pendingUrl. -
breedte
number optioneel
De breedte van het tabblad in pixels.
-
windowId
getal
De ID van het venster met het tabblad.
TabStatus
De laadstatus van het tabblad.
Enum
"unloaded"
"loading"
"complete"
WindowType
Het type venster.
Enum
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
Bepaalt hoe zoomwijzigingen in een tabblad worden verwerkt en op welk bereik.
Eigenschappen
-
defaultZoomFactor
number optioneel
Chrome 43+ browser.* sinds Chrome 148Wordt gebruikt om het standaard zoomniveau voor het huidige tabblad te retourneren in aanroepen naar tabs.getZoomSettings.
-
modus
ZoomSettingsMode optioneel
Definieert hoe zoomwijzigingen worden verwerkt, d.w.z. welke entiteit verantwoordelijk is voor de daadwerkelijke schaling van de pagina. De standaardwaarde is
automatic. -
bereik
ZoomSettingsScope optioneel
Bepaalt of zoomwijzigingen blijven gelden voor de oorsprong van de pagina of alleen van kracht worden op dit tabblad. De standaardinstelling is
per-originin de modusautomaticen andersper-tab.
ZoomSettingsMode
Definieert hoe zoomwijzigingen worden verwerkt, d.w.z. welke entiteit verantwoordelijk is voor de daadwerkelijke schaling van de pagina. De standaardwaarde is automatic.
Enum
"automatic"
Zoomwijzigingen worden automatisch verwerkt door de browser.
"manual"
Overschrijft de automatische verwerking van zoomwijzigingen. De gebeurtenis onZoomChange wordt nog steeds verzonden. Het is de verantwoordelijkheid van de extensie om naar deze gebeurtenis te luisteren en de pagina handmatig te schalen. Deze modus ondersteunt per-origin-zoomen niet. De zoominstelling scope wordt daarom genegeerd en er wordt uitgegaan van per-tab.
disabled
Zet alle zoomfuncties op het tabblad uit. Het tabblad wordt teruggezet naar het standaard zoomniveau en alle pogingen om het zoomniveau te wijzigen, worden genegeerd.
ZoomSettingsScope
Bepaalt of zoomwijzigingen blijven gelden voor de oorsprong van de pagina of alleen van kracht worden op dit tabblad. De standaardinstelling is per-origin in de modus automatic en anders per-tab.
Enum
per-origin
Zoomwijzigingen blijven behouden in de oorsprong van de ingezoomde pagina, d.w.z. alle andere tabbladen die naar dezelfde oorsprong zijn genavigeerd, worden ook ingezoomd. Bovendien worden wijzigingen in de zoomfactor van per-origin opgeslagen met de oorsprong. Dit betekent dat als je naar andere pagina's met dezelfde oorsprong gaat, ze allemaal worden ingezoomd met dezelfde zoomfactor. Het bereik per-origin is alleen beschikbaar in de modus automatic.
per-tab
Zoomwijzigingen worden alleen doorgevoerd op dit tabblad en zoomwijzigingen op andere tabbladen hebben geen invloed op het zoomen op dit tabblad. Ook worden per-tabzoomwijzigingen gereset bij navigatie. Als je naar een tabblad navigeert, worden pagina's altijd geladen met de per-originzoomfactoren.
Eigenschappen
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Het maximale aantal keren dat captureVisibleTab per seconde kan worden aangeroepen. captureVisibleTab is duur en moet niet te vaak worden aangeroepen.
Waarde
2
SPLIT_VIEW_ID_NONE
Een ID die de afwezigheid van een gesplitst tabblad vertegenwoordigt.
Waarde
-1
TAB_ID_NONE
Een ID die de afwezigheid van een browsertabblad aangeeft.
Waarde
-1
TAB_INDEX_NONE
Een index die de afwezigheid van een tabbladindex in een tabbladstrook vertegenwoordigt.
Waarde
-1
Methoden
captureVisibleTab()
browser.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
Legt het zichtbare gebied van het actieve tabblad in het aangegeven venster vast. De extensie moet het recht <all_urls> of activeTab hebben om deze methode aan te roepen. Naast sites waartoe extensies normaal gesproken toegang hebben, kunnen extensies met deze methode gevoelige sites vastleggen die anders beperkt zijn, waaronder pagina's met het chrome:-schema, pagina's van andere extensies en data:-URL's. Deze gevoelige sites kunnen alleen worden vastgelegd met het recht activeTab. Bestands-URL's kunnen alleen worden vastgelegd als de extensie bestandstoegang heeft gekregen.
Parameters
-
windowId
number optioneel
Het doelvenster. De standaardwaarde is het huidige venster.
-
opties
ImageDetails optioneel
Retourzendingen
-
Promise<string>
Chrome 88 of hoger browser.* sinds Chrome 148
connect()
browser.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Maakt verbinding met de contentscripts op het opgegeven tabblad. De gebeurtenis runtime.onConnect wordt geactiveerd in elk contentscript dat wordt uitgevoerd op het opgegeven tabblad voor de huidige extensie. Ga naar Content Script Messaging voor meer informatie.
Parameters
-
tabId
getal
-
connectInfo
object optioneel
-
documentId
tekenreeks optioneel
Chrome 106 of hoger browser.* sinds Chrome 148Open een poort naar een specifiek document dat wordt aangegeven door
documentIdin plaats van alle frames op het tabblad. -
frameId
number optioneel
Open een poort naar een specifiek frame dat wordt aangegeven door
frameIdin plaats van alle frames op het tabblad. -
name
tekenreeks optioneel
Wordt doorgegeven aan onConnect voor contentscripts die luisteren naar de verbindingsgebeurtenis.
-
Retourzendingen
-
Een poort die kan worden gebruikt om te communiceren met de contentscripts die worden uitgevoerd op het aangegeven tabblad. De gebeurtenis
runtime.Portvan de poort wordt geactiveerd als het tabblad wordt gesloten of niet bestaat.
Parameters
-
createProperties
object
-
actief
booleaans optioneel
Of het tabblad het actieve tabblad in het venster moet worden. Heeft geen invloed op of het venster de focus heeft (zie
windows.update). De standaardwaarde istrue. -
index
number optioneel
De positie die het tabblad moet innemen in het venster. De ingevoerde waarde wordt vastgezet tussen 0 en het aantal tabbladen in het venster.
-
openerTabId
number optioneel
De ID van het tabblad dat dit tabblad heeft geopend. Als dit is opgegeven, moet het openende tabblad zich in hetzelfde venster bevinden als het nieuwe tabblad.
-
vastgezet
booleaans optioneel
Of het tabblad moet worden vastgezet. Standaard is
false -
geselecteerd
booleaans optioneel
BeëindigdGebruik active.
Of het tabblad het geselecteerde tabblad in het venster moet worden. Standaard is
true -
splitWithTabId
number optioneel
Chrome 155+De ID van een bestaand tabblad waarmee een gesplitste weergave moet worden gemaakt. Als je dit opgeeft, moet het tabblad waarmee je splitst aan de volgende voorwaarden voldoen:
- Het mag geen tabblad zijn dat al is gesplitst.
- Het moet in hetzelfde venster staan als het nieuwe tabblad.
- Als
windowIdis ingevoerd, moet dit hetzelfde zijn als de venster-ID van het tabblad waarmee wordt gesplitst. - Als
indexis ingevoerd, moet dit een index zijn die grenst aan het tabblad waarmee wordt gesplitst. Dit is van invloed op de relatieve positie van het nieuwe tabblad.
-
url
tekenreeks optioneel
De URL waarnaar het tabblad in eerste instantie moet navigeren. Volledig gekwalificeerde URL's moeten een schema bevatten (bijv. 'http://www.google.com', niet 'www.google.com'). Relatieve URL's zijn relatief ten opzichte van de huidige pagina in de extensie. Standaard wordt de pagina Nieuw tabblad getoond.
-
windowId
number optioneel
Het venster waarin het nieuwe tabblad moet worden gemaakt. De standaardwaarde is het huidige venster.
-
Retourzendingen
-
Promise<Tab>
Chrome 88 of hoger browser.* sinds Chrome 148
createSplit()
browser.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
Splitst 2 bestaande tabbladen in een gesplitste weergave.
Parameters
-
tabIds
[number, number]
Een array van precies 2 tabblad-ID's die je wilt koppelen in een gesplitste weergave. Alle tabbladen moeten aan de volgende voorwaarden voldoen:
Ze moeten aan elkaar grenzen. Ze mogen nog niet in een gesplitste weergave staan. De statussen
windowId,pinnedengroupIdmoeten overeenkomen.
Retourzendingen
-
Promise<number>
detectLanguage()
browser.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Detecteert de primaire taal van de content op een tabblad.
Parameters
-
tabId
number optioneel
Standaard is dit het actieve tabblad van het huidige venster.
Retourzendingen
-
Promise<string>
Chrome 88 of hoger browser.* sinds Chrome 148
discard()
browser.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Verwijdert een tabblad uit het geheugen. Verwijderde tabbladen zijn nog steeds zichtbaar op de tabbladstrook en worden opnieuw geladen als ze worden geactiveerd.
Parameters
-
tabId
number optioneel
De ID van het tabblad dat moet worden verwijderd. Als je dit opgeeft, wordt het tabblad verwijderd, tenzij het actief is of al is verwijderd. Als je dit weglaat, verwijdert de browser het minst belangrijke tabblad. Dit kan mislukken als er geen tabbladen zijn die kunnen worden verwijderd.
Retourzendingen
-
Promise<Tab | undefined>
Chrome 88 of hoger browser.* sinds Chrome 148Wordt opgelost nadat de bewerking is afgerond.
duplicate()
browser.tabs.duplicate(
tabId: number,
): Promise<Tab | undefined>
Dupliceert een tabblad.
Parameters
-
tabId
getal
De ID van het tabblad dat je wilt dupliceren.
Retourzendingen
-
Promise<Tab | undefined>
Chrome 88 of hoger browser.* sinds Chrome 148
get()
browser.tabs.get(
tabId: number,
): Promise<Tab>
Hiermee worden gegevens over het opgegeven tabblad opgehaald.
Parameters
-
tabId
getal
Retourzendingen
-
Promise<Tab>
Chrome 88 of hoger browser.* sinds Chrome 148
getCurrent()
browser.tabs.getCurrent(): Promise<Tab | undefined>
Haalt het tabblad op van waaruit deze scriptaanroep wordt gedaan. Retourneert undefined als de aanroep wordt uitgevoerd vanuit een niet-tabbladcontext (bijvoorbeeld een achtergrondpagina of pop-upweergave).
Retourzendingen
-
Promise<Tab | undefined>
Chrome 88 of hoger browser.* sinds Chrome 148
getZoom()
browser.tabs.getZoom(
tabId?: number,
): Promise<number>
Haalt de huidige zoomfactor van een opgegeven tabblad op.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarvan je de huidige zoomfactor wilt ophalen. De standaardwaarde is het actieve tabblad van het huidige venster.
Retourzendingen
-
Promise<number>
Chrome 88 of hoger browser.* sinds Chrome 148Lost op met de huidige zoomfactor van het tabblad nadat deze is opgehaald.
getZoomSettings()
browser.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Haalt de huidige zoominstellingen van een opgegeven tabblad op.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarvan je de huidige zoominstellingen wilt ophalen. De standaardinstelling is het actieve tabblad van het huidige venster.
Retourzendingen
-
Promise<ZoomSettings>
Chrome 88 of hoger browser.* sinds Chrome 148Voert de omzetting uit met de huidige zoominstellingen van het tabblad.
goBack()
browser.tabs.goBack(
tabId?: number,
): Promise<void>
Ga terug naar de vorige pagina, als die beschikbaar is.
Parameters
-
tabId
number optioneel
De ID van het tabblad om terug te navigeren. De standaardwaarde is het geselecteerde tabblad van het huidige venster.
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148
goForward()
browser.tabs.goForward(
tabId?: number,
): Promise<void>
Ga naar de volgende pagina, als die beschikbaar is.
Parameters
-
tabId
number optioneel
De ID van het tabblad om vooruit te navigeren. De standaardinstelling is het geselecteerde tabblad van het huidige venster.
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148
group()
browser.tabs.group(
options: object,
): Promise<number>
Voegt een of meer tabbladen toe aan een opgegeven groep of, als er geen groep is opgegeven, voegt de aangegeven tabbladen toe aan een nieuw gemaakte groep.
Parameters
-
opties
object
-
createProperties
object optioneel
Configuraties om een groep te maken. Kan niet worden gebruikt als groupId al is ingevoerd.
-
windowId
number optioneel
Het venster van de nieuwe groep. De standaardwaarde is het huidige venster.
-
-
groupId
number optioneel
De ID van de groep waaraan je de tabbladen wilt toevoegen. Als u niets invoert, wordt er een nieuwe groep gemaakt.
-
tabIds
number | [number, ...number[]]
De tabblad-ID of lijst met tabblad-ID's die je aan de aangegeven groep wilt toevoegen.
-
Retourzendingen
-
Promise<number>
highlight()
browser.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Markeert de aangegeven tabbladen en focust op het eerste tabblad van de groep. Er gebeurt niets als het aangegeven tabblad op dat moment actief is.
Parameters
-
highlightInfo
object
-
tabbladen
number | number[]
Een of meer tabbladindexen om te markeren.
-
windowId
number optioneel
Het venster met de tabbladen.
-
Retourzendingen
-
Promise<windows.Window>
Chrome 88 of hoger browser.* sinds Chrome 148
move()
browser.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Verplaatst een of meer tabbladen naar een nieuwe positie in het venster of naar een nieuw venster. Je kunt tabbladen alleen verplaatsen naar en van normale vensters (window.type === "normal").
Parameters
-
tabIds
number | number[]
De tabblad-ID of lijst met tabblad-ID's die je wilt verplaatsen.
-
moveProperties
object
-
index
getal
De positie waarnaar het venster moet worden verplaatst. Gebruik
-1om het tabblad aan het einde van het venster te plaatsen. -
windowId
number optioneel
Standaard wordt het venster gebruikt waarin het tabblad zich op dat moment bevindt.
-
query()
browser.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Haalt alle tabbladen op die de opgegeven eigenschappen hebben, of alle tabbladen als er geen eigenschappen zijn opgegeven.
Parameters
-
queryInfo
object
-
actief
booleaans optioneel
Of de tabbladen actief zijn in de vensters.
-
audible
booleaans optioneel
Chrome 45+ browser.* sinds Chrome 148Of de tabbladen hoorbaar zijn.
-
autoDiscardable
booleaans optioneel
Chrome 54+ browser.* sinds Chrome 148Of de tabbladen automatisch kunnen worden verwijderd door de browser als er weinig bronnen zijn.
-
currentWindow
booleaans optioneel
Of de tabbladen zich in het huidige venster bevinden.
-
verwijderd
booleaans optioneel
Chrome 54+ browser.* sinds Chrome 148Of de tabbladen worden verwijderd. Een verwijderd tabblad is een tabblad waarvan de content uit het geheugen is verwijderd, maar nog steeds zichtbaar is in de tabbladstrook. De content wordt opnieuw geladen als de extensie de volgende keer wordt geactiveerd.
-
vastgelopen
booleaans optioneel
Chrome 132+ browser.* sinds Chrome 148Of de tabbladen zijn vastgezet. Een vastgezet tabblad kan geen taken uitvoeren, waaronder gebeurtenishandlers of timers. Het is zichtbaar in de tabbladstrip en de content wordt in het geheugen geladen. Het wordt ontdooid bij activering.
-
groupId
number optioneel
Chrome 88 of hoger browser.* sinds Chrome 148De ID van de groep waarin de tabbladen zich bevinden of
tabGroups.TAB_GROUP_ID_NONEvoor niet-gegroepeerde tabbladen. -
gemarkeerd
booleaans optioneel
Of de tabbladen zijn gemarkeerd.
-
index
number optioneel
De positie van de tabbladen in de vensters.
-
lastFocusedWindow
booleaans optioneel
Of de tabbladen zich in het laatst gefocuste venster bevinden.
-
gedempt
booleaans optioneel
Chrome 45+ browser.* sinds Chrome 148Of de tabbladen op stil staan.
-
vastgezet
booleaans optioneel
Of de tabbladen zijn vastgezet.
-
splitViewId
number optioneel
Chrome 140+ browser.* sinds Chrome 148De ID van de gesplitste weergave waarin de tabbladen zich bevinden, of
tabs.SPLIT_VIEW_ID_NONEvoor tabbladen die zich niet in een gesplitste weergave bevinden. -
status
TabStatus optioneel
De laadstatus van het tabblad.
-
titel
tekenreeks optioneel
Paginatitels vergelijken met een patroon. Deze property wordt genegeerd als de extensie niet het recht
"tabs"of hostrechten voor de pagina heeft. -
url
string | string[] optioneel
Vergelijk tabbladen met een of meer URL-patronen. Fragment-ID's worden niet gematcht. Deze property wordt genegeerd als de extensie niet het recht
"tabs"of hostrechten voor de pagina heeft. -
windowId
number optioneel
De ID van het bovenliggende venster of
windows.WINDOW_ID_CURRENTvoor het huidige venster. -
windowType
WindowType optioneel
Het type venster waarin de tabbladen zich bevinden.
-
Retourzendingen
-
Promise<Tab[]>
Chrome 88 of hoger browser.* sinds Chrome 148
reload()
browser.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Laad een tabblad opnieuw.
Parameters
-
tabId
number optioneel
De ID van het tabblad dat opnieuw moet worden geladen. Dit is standaard het geselecteerde tabblad van het huidige venster.
-
reloadProperties
object optioneel
-
bypassCache
booleaans optioneel
Of lokaal cachen moet worden overgeslagen. De standaardwaarde is
false.
-
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148
remove()
browser.tabs.remove(
tabIds: number | number[],
): Promise<void>
Sluit een of meer tabbladen.
Parameters
-
tabIds
number | number[]
De tabblad-ID of lijst met tabblad-ID's die je wilt sluiten.
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148
sendMessage()
browser.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
Stuurt één bericht naar de contentscripts op het aangegeven tabblad. De gebeurtenis runtime.onMessage wordt geactiveerd in elk contentscript dat wordt uitgevoerd op het opgegeven tabblad voor de huidige extensie.
Parameters
-
tabId
getal
-
bericht
alle
Het bericht dat je wilt sturen. Dit bericht moet een json-object zijn.
-
opties
object optioneel
-
documentId
tekenreeks optioneel
Chrome 106 of hoger browser.* sinds Chrome 148Stuur een bericht naar een specifiek document dat wordt geïdentificeerd door
documentIdin plaats van naar alle frames op het tabblad. -
frameId
number optioneel
Stuur een bericht naar een specifiek frame dat wordt aangegeven door
frameIdin plaats van naar alle frames op het tabblad.
-
Retourzendingen
-
Promise<any>
Chrome 99+ browser.* sinds Chrome 148Promise die wordt opgelost met de reactie van het contentscript. Als er een fout optreedt bij het maken van verbinding met het opgegeven tabblad, wordt de promise afgewezen.
setZoom()
browser.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Zoomt in op een opgegeven tabblad.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarop moet worden gezoomd. De standaardwaarde is het actieve tabblad van het huidige venster.
-
zoomFactor
getal
De nieuwe zoomfactor. De waarde
0stelt het tabblad in op de huidige standaard zoomfactor. Waarden hoger dan0geven een (mogelijk niet-standaard) zoomfactor voor het tabblad aan.
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148Wordt opgelost nadat de zoomfactor is gewijzigd.
setZoomSettings()
browser.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Hiermee stel je de zoominstellingen voor een bepaald tabblad in. Deze bepalen hoe zoomwijzigingen worden verwerkt. Deze instellingen worden gereset naar de standaardwaarden als je naar het tabblad gaat.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarvoor je de zoominstellingen wilt wijzigen. De standaardinstelling is het actieve tabblad van het huidige venster.
-
zoomSettings
Bepaalt hoe zoomwijzigingen worden verwerkt en op welk niveau.
Retourzendingen
-
Promise<void>
Chrome 88 of hoger browser.* sinds Chrome 148Het probleem wordt opgelost nadat de zoominstellingen zijn gewijzigd.
ungroup()
browser.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Verwijdert een of meer tabbladen uit de respectieve groepen. Als groepen leeg raken, worden ze verwijderd.
Parameters
-
tabIds
number | [number, ...number[]]
De tabblad-ID of lijst met tabblad-ID's die je uit de respectieve groepen wilt verwijderen.
Retourzendingen
-
Promise<void>
unsplit()
browser.tabs.unsplit(
splitViewId: number,
): Promise<void>
Hiermee worden de tabbladen in een gesplitste weergave gescheiden in onafhankelijke tabbladen.
Parameters
-
splitViewId
getal
De ID van de gesplitste weergave die je wilt scheiden.
Retourzendingen
-
Promise<void>
update()
browser.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Wijzigt de eigenschappen van een tabblad. Property's die niet zijn opgegeven in updateProperties, worden niet gewijzigd.
Parameters
-
tabId
number optioneel
Standaard wordt het geselecteerde tabblad van het huidige venster gebruikt.
-
updateProperties
object
-
actief
booleaans optioneel
Of het tabblad actief moet zijn. Heeft geen invloed op of het venster de focus heeft (zie
windows.update). -
autoDiscardable
booleaans optioneel
Chrome 54+ browser.* sinds Chrome 148Of het tabblad automatisch door de browser moet worden verwijderd als er weinig bronnen zijn.
-
gemarkeerd
booleaans optioneel
Hiermee voeg je het tabblad toe aan of verwijder je het uit de huidige selectie.
-
gedempt
booleaans optioneel
Chrome 45+ browser.* sinds Chrome 148Of het geluid van het tabblad moet worden uitgezet.
-
openerTabId
number optioneel
De ID van het tabblad dat dit tabblad heeft geopend. Als dit is opgegeven, moet het openende tabblad zich in hetzelfde venster bevinden als dit tabblad.
-
vastgezet
booleaans optioneel
Of het tabblad moet worden vastgezet.
-
geselecteerd
booleaans optioneel
BeëindigdGebruik gemarkeerd.
Of het tabblad moet worden geselecteerd.
-
url
tekenreeks optioneel
Een URL waarnaar het tabblad moet navigeren. JavaScript-URL's worden niet ondersteund. Gebruik in plaats daarvan
scripting.executeScript.
-
Retourzendingen
-
Promise<Tab | undefined>
Chrome 88 of hoger browser.* sinds Chrome 148
Evenementen
onActivated
browser.tabs.onActivated.addListener(
callback: function,
)
Wordt geactiveerd als het actieve tabblad in een venster verandert. De URL van het tabblad is misschien niet ingesteld op het moment dat deze gebeurtenis wordt geactiveerd, maar je kunt luisteren naar onUpdated-gebeurtenissen om een melding te krijgen wanneer een URL wordt ingesteld.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(activeInfo: object) => void
-
activeInfo
object
-
tabId
getal
De ID van het tabblad dat actief is geworden.
-
windowId
getal
De ID van het venster waarin het actieve tabblad is gewijzigd.
-
-
onAttached
browser.tabs.onAttached.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad aan een venster wordt gekoppeld, bijvoorbeeld omdat het tussen vensters is verplaatst.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(tabId: number, attachInfo: object) => void
-
tabId
getal
-
attachInfo
object
-
newPosition
getal
-
newWindowId
getal
-
-
onCreated
browser.tabs.onCreated.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad wordt gemaakt. De URL van het tabblad, het lidmaatschap van de tabbladgroep en het lidmaatschap van de gesplitste weergave zijn misschien niet ingesteld op het moment dat deze gebeurtenis wordt geactiveerd, maar je kunt luisteren naar onUpdated-gebeurtenissen om een melding te krijgen als een URL is ingesteld of het tabblad is toegevoegd aan een tabbladgroep of gesplitste weergave.
onDetached
browser.tabs.onDetached.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad wordt losgekoppeld van een venster, bijvoorbeeld omdat het tussen vensters is verplaatst.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(tabId: number, detachInfo: object) => void
-
tabId
getal
-
detachInfo
object
-
oldPosition
getal
-
oldWindowId
getal
-
-
onHighlighted
browser.tabs.onHighlighted.addListener(
callback: function,
)
Wordt geactiveerd als de gemarkeerde of geselecteerde tabbladen in een venster veranderen.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(highlightInfo: object) => void
-
highlightInfo
object
-
tabIds
number[]
Alle gemarkeerde tabbladen in het venster.
-
windowId
getal
Het venster waarvan de tabbladen zijn gewijzigd.
-
-
onMoved
browser.tabs.onMoved.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad binnen een venster wordt verplaatst. Er wordt maar één verplaatsingsgebeurtenis geactiveerd, die het tabblad vertegenwoordigt dat de gebruiker rechtstreeks heeft verplaatst. Verplaatsingsgebeurtenissen worden niet geactiveerd voor de andere tabbladen die moeten worden verplaatst als reactie op het handmatig verplaatste tabblad. Deze gebeurtenis wordt niet geactiveerd als een tabblad tussen vensters wordt verplaatst. Ga naar tabs.onDetached voor meer informatie.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(tabId: number, moveInfo: object) => void
-
tabId
getal
-
moveInfo
object
-
fromIndex
getal
-
toIndex
getal
-
windowId
getal
-
-
onRemoved
browser.tabs.onRemoved.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad wordt gesloten.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(tabId: number, removeInfo: object) => void
-
tabId
getal
-
removeInfo
object
-
isWindowClosing
booleaans
Waar als het tabblad is gesloten omdat het bovenliggende venster is gesloten.
-
windowId
getal
Het venster waarvan het tabblad is gesloten.
-
-
onReplaced
browser.tabs.onReplaced.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad wordt vervangen door een ander tabblad vanwege pre-rendering of instant.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(addedTabId: number, removedTabId: number) => void
-
addedTabId
getal
-
removedTabId
getal
-
onUpdated
browser.tabs.onUpdated.addListener(
callback: function,
)
Wordt geactiveerd als een tabblad wordt geüpdatet.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
getal
-
changeInfo
object
-
audible
booleaans optioneel
Chrome 45+ browser.* sinds Chrome 148De nieuwe hoorbare status van het tabblad.
-
autoDiscardable
booleaans optioneel
Chrome 54+ browser.* sinds Chrome 148De nieuwe status voor automatisch verwijderen van het tabblad.
-
verwijderd
booleaans optioneel
Chrome 54+ browser.* sinds Chrome 148De nieuwe beëindigde status van het tabblad.
-
favIconUrl
tekenreeks optioneel
De nieuwe favicon-URL van het tabblad.
-
vastgelopen
booleaans optioneel
Chrome 132+ browser.* sinds Chrome 148De nieuwe bevroren status van het tabblad.
-
groupId
number optioneel
Chrome 88 of hoger browser.* sinds Chrome 148De nieuwe groep van het tabblad.
-
mutedInfo
MutedInfo optioneel
Chrome 46+ browser.* sinds Chrome 148De nieuwe gedempte status van het tabblad en de reden voor de wijziging.
-
vastgezet
booleaans optioneel
De nieuwe vastgezette status van het tabblad.
-
splitViewId
number optioneel
Chrome 140+ browser.* sinds Chrome 148De nieuwe gesplitste weergave van het tabblad.
-
status
TabStatus optioneel
De laadstatus van het tabblad.
-
titel
tekenreeks optioneel
Chrome 48+ browser.* sinds Chrome 148De nieuwe titel van het tabblad.
-
url
tekenreeks optioneel
De URL van het tabblad als deze is gewijzigd.
-
-
tab
-
onZoomChange
browser.tabs.onZoomChange.addListener(
callback: function,
)
Wordt geactiveerd als er wordt ingezoomd op een tabblad.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
object
-
newZoomFactor
getal
-
oldZoomFactor
getal
-
tabId
getal
-
zoomSettings
-
-