windows.create()
Erstellt ein neues Fenster.
Wenn Sie das Fenster erstellen, können Sie:
- Eine oder mehrere neue Registerkarten in das Fenster laden.
- Eine Registerkarte aus einem bestehenden Fenster in das neue Fenster verschieben.
- Die Größe und Position des Fensters festlegen.
- Ein Fenster im "Panel"-Stil erstellen, was 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 eine einzelne Registerkarte oder, wennurl
angegeben ist und ein Array mit mehr als einer URL enthält, mehr als eine Registerkarte. Standardmäßig dürfen Skripte, die auf diesen Seiten ausgeführt werden, ihre Registerkarte nicht mitwindow.close()
schließen. Wenn SieallowScriptsToClose
einschließen und auftrue
setzen, wird dieses Standardverhalten geändert, sodass Skripte ihre Registerkarten schließen können. Beachten Sie, dass:- dies nur für die Registerkarten gilt, die beim Erstellen des Fensters geöffnet wurden. Wenn der Benutzer in diesem Fenster weitere Registerkarten öffnet, können Skripte diese neuen Registerkarten nicht schließen.
- wenn die in
url
angegebenen URL(s) auf Erweiterungsseiten verweisen (d.h. es handelt sich um Seiten, die mit dieser Erweiterung enthalten und mit dem "moz-extension:"-Protokoll geladen werden), dann dürfen Skripte diese Registerkarten standardmäßig schließen.
-
integer
. Wenn vorhanden, gibt es dieCookieStoreId
für alle Registerkarten an, die beim Öffnen des Fensters erstellt werden. Weitere Informationen zur Verwendung voncookieStoreId
finden Sie unter Arbeiten mit kontextuellen Identitäten. 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. Standardmäßigtrue
. height
Optional-
integer
. Die Höhe in Pixeln 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 auf eine private Registerkarte verweisen muss - das heißt, Sie können keine nicht-private Registerkarte in ein privates Fenster verschieben. left
Optional-
integer
. Die Anzahl der Pixel, die das neue Fenster vom linken Rand des Bildschirms entfernt positioniert werden soll. Wenn nicht angegeben, wird das neue Fenster natürlich vom zuletzt fokussierten Fenster aus verschoben. (In Firefox 108 oder früher fürpanel
- oderpopup
-Fenstertypen ignoriert; das Positionieren des Fensters mitwindows.update()
könnte als Workaround verwendet werden.) state
Optional-
Ein
windows.WindowState
-Wert. Der anfängliche Zustand des Fensters. Dieminimized
-,maximized
- undfullscreen
-Zustände können nicht mitleft
,top
,width
oderheight
kombiniert werden. tabId
Optional-
integer
. Wenn enthalten, verschiebt es eine Registerkarte der angegebenen ID aus einem existierenden Fenster in das neue Fenster. titlePreface
Optional-
string
. Verwenden Sie dies, um einen String an den Anfang des Titels des Browserfensters hinzuzufügen. Abhängig von dem 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, die das neue Fenster vom oberen Rand des Bildschirms entfernt positioniert werden soll. Wenn nicht angegeben, wird das neue Fenster natürlich vom zuletzt fokussierten Fenster aus verschoben. (In Firefox 108 oder früher fürpanel
- oderpopup
-Fenstertypen ignoriert; das Positionieren des Fensters mitwindows.update()
könnte als Workaround verwendet werden.) type
Optional-
Ein
windows.CreateType
-Wert. Spezifiziert, welcher Typ von Browserfenster erstellt werden soll. Geben Sie hierpanel
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 Registerkarten im Fenster geöffnet werden sollen. Vollqualifizierte 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. Standardmäßig die Neue-Tab-Seite. width
Optional-
integer
. Die Breite in Pixeln 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 hat immer seine tabs
-Eigenschaft gesetzt, im Gegensatz zu den Window
-Objekten, die von windows.get()
und ähnlichen APIs zurückgegeben werden, die nur tabs
enthalten, wenn die populate
-Option übergeben wird. Falls ein Fehler auftritt, wird das Promise mit einer Fehlermeldung abgelehnt.
Beispiele
Öffnen Sie ein Fenster, das zwei Registerkarten 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 die aktuell aktive Registerkarte hinein:
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 der chrome.windows
-API von Chromium. Diese Dokumentation ist abgeleitet von windows.json
im Chromium-Code.