windows.create()
Erstellt ein neues Fenster.
Wenn Sie das Fenster erstellen, können Sie:
- Einen oder mehrere neue Tabs in das Fenster laden.
- Einen Tab aus einem bestehenden Fenster in das neue Fenster verschieben.
- Die Größe und Position des Fensters festlegen.
- Ein Fenster im "Panel"-Stil erstellen, das in diesem Kontext ein Fenster ohne die normale Browser-Benutzeroberfläche (Adressleiste, Symbolleiste usw.) bedeutet.
- Verschiedene Eigenschaften des Fensters festlegen, wie z.B., ob es fokussiert oder privat ist.
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Syntax
let creating = browser.windows.create(
createData // optional object
)
Parameter
createData
Optional-
object
.allowScriptsToClose
Optional-
boolean
. Wenn das Fenster geöffnet wird, enthält es einen einzelnen Tab oder mehr als einen Tab, wennurl
angegeben ist und ein Array mit mehr als einer URL enthält. Standardmäßig dürfen Skripte, die in diesen Seiten laufen, ihren Tab nicht mitwindow.close()
schließen. Wenn SieallowScriptsToClose
einfügen und auftrue
setzen, wird dieses Standardverhalten geändert, sodass Skripte ihre Tabs schließen können. Beachten Sie:- dies gilt nur für die Tabs, die beim Erstellen des Fensters geöffnet wurden. Wenn der Benutzer in diesem Fenster weitere Tabs öffnet, können Skripte diese neuen Tabs nicht schließen.
- wenn die in
url
angegebenen URLs auf Erweiterungsseiten verweisen (d.h. es sind Seiten, die mit dieser Erweiterung geliefert und mit dem "moz-extension:"-Protokoll geladen werden), dürfen Skripte standardmäßig diese Tabs schließen.
-
integer
. Falls vorhanden, spezifiziert dieCookieStoreId
für alle Tabs, die beim Öffnen des Fensters erstellt werden. Siehe Arbeiten mit kontextuellen Identitäten für weitere Informationen zur Verwendung voncookieStoreId
. focused
Optional-
boolean
. Wenntrue
, wird das neue Fenster fokussiert. Wennfalse
, wird das neue Fenster im Hintergrund geöffnet und das aktuell fokussierte Fenster bleibt fokussiert. Standardwert isttrue
. height
Optional-
integer
. Die Höhe in Pixel des neuen Fensters, einschließlich des Rahmens. Wenn nicht angegeben, wird eine natürliche Höhe verwendet. incognito
Optional-
boolean
. Ob das neue Fenster ein inkognito (privates) Fenster sein soll. Beachten Sie, dass, wenn Sieincognito
undtabId
angeben, die ID sich auf einen privaten Tab beziehen muss – das heißt, Sie können keinen nicht-privaten Tab in ein privates Fenster verschieben. left
Optional-
integer
. Die Anzahl der Pixel, um das neue Fenster von der linken Bildschirmkante zu positionieren. Wenn nicht angegeben, wird das neue Fenster natürlich vom zuletzt fokussierten Fenster abgesetzt. (In Firefox 108 oder früher fürpanel
- oderpopup
-Fenstertypen ignoriert; das Positionieren des Fensters mittelswindows.update()
könnte als Workaround verwendet werden.) state
Optional-
Ein
windows.WindowState
-Wert. Der anfängliche Zustand des Fensters. Die Zuständeminimized
,maximized
, undfullscreen
können nicht mitleft
,top
,width
oderheight
kombiniert werden. tabId
Optional-
integer
. Falls angegeben, wird ein Tab mit der angegebenen ID aus einem bestehenden Fenster in das neue Fenster verschoben. titlePreface
Optional-
string
. Verwenden Sie dies, um eine Zeichenfolge am Anfang des Fenstertitels des Browsers hinzuzufügen. Abhängig vom zugrundeliegenden Betriebssystem funktioniert dies möglicherweise nicht bei Browserfenstern, die keinen Titel haben (wie about:blank in Firefox). top
Optional-
integer
. Die Anzahl der Pixel, um das neue Fenster von der oberen Bildschirmkante zu positionieren. Wenn nicht angegeben, wird das neue Fenster natürlich vom zuletzt fokussierten Fenster abgesetzt. (In Firefox 108 oder früher fürpanel
- oderpopup
-Fenstertypen ignoriert; das Positionieren des Fensters mittelswindows.update()
könnte als Workaround verwendet werden.) type
Optional-
Ein
windows.CreateType
-Wert. Gibt an, welche Art von Browserfenster erstellt werden soll. Geben Siepanel
oderpopup
an, um ein Fenster ohne die normale Browser-Benutzeroberfläche (Adressleiste, Symbolleiste usw.) zu öffnen. url
Optional-
string
oderarray
vonstring
s. Eine URL oder ein Array von URLs, die als Tabs im Fenster geöffnet werden sollen. Vollständig qualifizierte URLs müssen ein Schema enthalten (d.h.http://www.google.com
, nichtwww.google.com
). Relative URLs beziehen sich auf die aktuelle Seite innerhalb der Erweiterung. Standardwert ist die New Tab Page. width
Optional-
integer
. Die Breite in Pixel des neuen Fensters, einschließlich des Rahmens. Wenn nicht angegeben, wird eine natürliche Breite verwendet.
Rückgabewert
Ein Promise
, das mit einem windows.Window
-Objekt erfüllt wird, das die Details des neuen Fensters enthält. Dieses Window
-Objekt wird immer seine tabs
-Eigenschaft gesetzt haben, im Gegensatz zu den Window
-Objekten von APIs wie windows.get()
, die nur tabs
enthalten, wenn die populate
-Option übergeben wird. Wenn ein Fehler auftritt, wird das Promise mit einer Fehlermeldung abgelehnt.
Beispiele
Öffnen Sie ein Fenster, das zwei Tabs enthält:
function onCreated(windowInfo) {
console.log(`Created window: ${windowInfo.id}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener((tab) => {
let creating = browser.windows.create({
url: ["https://developer.mozilla.org", "https://addons.mozilla.org"],
});
creating.then(onCreated, onError);
});
Öffnen Sie ein Fenster, wenn der Benutzer auf eine Browseraktion klickt, und verschieben Sie den momentan aktiven Tab in dieses Fenster:
function onCreated(windowInfo) {
console.log(`Created window: ${windowInfo.id}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener((tab) => {
let creating = browser.windows.create({
tabId: tab.id,
});
creating.then(onCreated, onError);
});
Öffnen Sie ein kleines Fenster im Panel-Stil und laden Sie eine lokal gepackte Datei hinein:
function onCreated(windowInfo) {
console.log(`Created window: ${windowInfo.id}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener((tab) => {
let popupURL = browser.extension.getURL("popup/popup.html");
let creating = browser.windows.create({
url: popupURL,
type: "popup",
height: 200,
width: 200,
});
creating.then(onCreated, onError);
});
Beispielerweiterungen
Browser-Kompatibilität
Hinweis:
Diese API basiert auf Chromiums chrome.windows
API. Diese Dokumentation ist abgeleitet von windows.json
im Chromium-Code.