Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WindowSharedStorage: selectURL() Methode

Deprecated

Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers.

Die selectURL() Methode der WindowSharedStorage Schnittstelle führt eine URL-Auswahloperation aus, die in einem Modul registriert ist, das dem SharedStorageWorklet des aktuellen Ursprungs hinzugefügt wurde.

Hinweis: Das URL-Auswahl-Ausgabegate wird verwendet, um basierend auf den Daten des geteilten Speichers eine URL aus einer bereitgestellten Liste auszuwählen, die dem Benutzer angezeigt werden soll.

Syntax

js
selectURL(name, urls)
selectURL(name, urls, options)

Parameter

name

Ein String, der den Namen der registrierten Operation innerhalb des Shared-Storage-Worklet-Moduls darstellt. Dieser muss mit dem Namen übereinstimmen, der der Operation bei der Registrierung mit SharedStorageWorkletGlobalScope.register() gegeben wurde.

urls

Ein Array von Objekten, die die URLs repräsentieren, zwischen denen die URL-Auswahloperation gewählt werden soll. Jedes Objekt enthält zwei Eigenschaften:

url

Ein String, der die URL darstellt.

reportingMetadata Optional

Ein Objekt mit Eigenschaften, bei denen die Namen Ereignistypen und die Werte URLs sind, die auf Berichtszielorte verweisen, zum Beispiel "click" : "my-reports/report1.html". Die URLs dienen als Zielorte für Berichte, die mit einem Zielort-Typ "shared-storage-select-url" übermittelt werden, typischerweise über einen Aufruf der Methode Fence.reportEvent() oder Fence.setReportEventDataForAutomaticBeacons().

options Optional

Ein Optionsobjekt, das folgende Eigenschaften enthalten kann:

data Optional

Ein Objekt, das alle Daten darstellt, die für die Durchführung der Operation erforderlich sind.

keepAlive Optional

Ein boolescher Wert. Wenn auf true gesetzt, bleibt der SharedStorageWorkletGlobalScope des zugehörigen Worklets aktiv, und die Operation kann erneut ausgeführt werden. Daher müssen Sie keepAlive auf true setzen für jede Operation, die nicht die letzte sein soll. Der Standardwert false bedeutet, dass der SharedStorageWorkletGlobalScope nach Ausführung der Operation beendet wird und nicht erneut ausgeführt werden kann.

resolveToConfig Optional

Ein boolescher Wert. Wenn auf true gesetzt, ist der Erfüllungswert des von selectURL() zurückgegebenen Promise ein FencedFrameConfig Objekt, das verwendet werden kann, um Inhalte in ein <fencedframe> über dessen config-Attribut zu laden. Der Standardwert false bedeutet, dass der Erfüllungswert eine URL ist, die verwendet werden kann, um Inhalte in ein <iframe> zu laden.

Rückgabewert

Ein Promise, das mit einem FencedFrameConfig Objekt oder einem String, der eine URL darstellt, je nach Wert der resolveToConfig Option erfüllt wird.

Ausnahmen

TypeError

Ausgelöst, wenn:

  • Das Worklet-Modul noch nicht mit addModule() hinzugefügt wurde.
  • urls leer ist oder die maximal zulässige Länge (die browserabhängig ist) überschreitet.
  • Die url-Eigenschaft eines Objekts eine ungültige URL enthält.
  • Der geteilte Speicher deaktiviert ist (zum Beispiel über eine Browsereinstellung).
  • Die aufrufende Seite die Shared Storage API nicht in einem erfolgreichen Privacy Sandbox Anmeldeprozess enthalten hat.

Beispiele

Basis A/B-Tests

js
// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
  return Math.round(Math.random());
}

async function injectContent() {
  // Add the module to the shared storage worklet
  await window.sharedStorage.worklet.addModule("ab-testing-worklet.js");

  // Assign user to a random group (0 or 1) and store it in shared storage
  window.sharedStorage.set("ab-testing-group", getExperimentGroup(), {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation
  const fencedFrameConfig = await window.sharedStorage.selectURL(
    "ab-testing",
    [
      { url: `https://your-server.example/content/default-content.html` },
      { url: `https://your-server.example/content/experiment-content-a.html` },
    ],
    {
      resolveToConfig: true,
    },
  );

  // Render the chosen URL into a fenced frame
  document.getElementById("content-slot").config = fencedFrameConfig;
}

injectContent();

Siehe die Shared Storage API Einstiegsseite für eine Schritt-für-Schritt-Anleitung dieses Beispiels und Links zu weiteren Beispielen.

Spezifikationen

Diese Funktion scheint in keiner Spezifikation definiert zu sein.

Browser-Kompatibilität

Siehe auch