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

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

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

Hinweis: Das URL-Ausgabe-Gatter wird verwendet, um eine URL aus einer bereitgestellten Liste auszuwählen, die dem Benutzer angezeigt werden soll, basierend auf gemeinsamen Speicher-Daten.

Syntax

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

Parameter

name

Ein String, der den Namen der innerhalb des shared storage worklet Moduls registrierten Operation darstellt. Er muss mit dem Namen übereinstimmen, der der Operation gegeben wurde, als sie mit SharedStorageWorkletGlobalScope.register() registriert wurde.

urls

Ein Array von Objekten, das die URLs repräsentiert, zwischen denen die URL-Auswahloperation wählen soll. Jedes Objekt enthält zwei Eigenschaften:

url

Ein String, der die URL repräsentiert.

reportingMetadata Optional

Ein Objekt, das Eigenschaften enthält, bei denen Namen Ereignistypen sind und Werte URLs sind, die auf Berichtsziele verweisen, zum Beispiel "click" : "my-reports/report1.html". Die URLs fungieren als Ziele für Berichte, die mit einem Ziel des Typs "shared-storage-select-url" eingereicht werden, typischerweise eingereicht durch einen Aufruf der Methoden Fence.reportEvent() oder Fence.setReportEventDataForAutomaticBeacons().

options Optional

Ein Optionsobjekt, das die folgenden Eigenschaften enthalten kann:

data Optional

Ein Objekt, das alle Daten repräsentiert, die zur Ausführung der Operation erforderlich sind.

keepAlive Optional

Ein boolescher Wert. Wenn auf true gesetzt wird der SharedStorageWorkletGlobalScope des zugehörigen Worklets am Leben gehalten, 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 wird der Erfüllungswert des Promise, das von run() zurückgegeben wird, ein FencedFrameConfig-Objekt sein, das verwendet werden kann, um Inhalte in ein <fencedframe> über sein config-Attribut zu laden. Der Standardwert false bedeutet, dass der Erfüllungswert eine URL sein wird, die verwendet werden kann, um Inhalte in ein <iframe> zu laden.

Rückgabewert

Ein Promise, das entweder mit einem FencedFrameConfig Objekt oder einem String, der eine URL repräsentiert, erfüllt wird, abhängig vom Wert der resolveToConfig-Option.

Ausnahmen

TypeError

Wird ausgelöst, wenn:

  • Das Worklet-Modul noch nicht mit addModule() hinzugefügt wurde.
  • urls leer ist oder die maximal erlaubte Länge überschreitet (welche browser-spezifisch ist).
  • Eine url-Eigenschaft eines Objekts eine ungültige URL enthält.
  • Gemeinsamer Speicher ist deaktiviert (zum Beispiel über eine Browsereinstellung).
  • Die aufrufende Seite die Shared Storage API nicht erfolgreich in einen Privacy Sandbox Enrollment-Prozess aufgenommen hat.

Beispiele

Einfaches A/B-Testing

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-Startseite für eine Schritt-für-Schritt-Anleitung zu diesem Beispiel und Links zu weiteren Beispielen.

Spezifikationen

This feature does not appear to be defined in any specification.

Browser-Kompatibilität

Siehe auch