WindowSharedStorage: selectURL()-Methode
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die selectURL()
-Methode der WindowSharedStorage
-Schnittstelle führt eine URL-Auswahloperation aus, die in einem Modul registriert ist, das zum aktuellen Ursprung des SharedStorageWorklet
hinzugefügt wurde.
Hinweis: Das URL-Ausgabeauswahl-Gate wird verwendet, um eine URL aus einer bereitgestellten Liste auszuwählen, die dem Benutzer basierend auf gemeinsam genutzten Speicherdaten angezeigt werden soll.
Syntax
selectURL(name, urls)
selectURL(name, urls, options)
Parameter
name
-
Ein String, der den Namen der registrierten Operation innerhalb des Shared Storage Worklet-Moduls 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 darstellt, zwischen denen die URL-Auswahloperation wählen soll. Jedes Objekt enthält zwei Eigenschaften:
url
-
Ein String, der die URL darstellt.
reportingMetadata
Optional-
Ein Objekt, das Eigenschaften enthält, bei denen die Namen Ereignistypen und die 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 vom Typ"shared-storage-select-url"
eingereicht werden, typischerweise eingereicht über einen Aufruf der MethodeFence.reportEvent()
oderFence.setReportEventDataForAutomaticBeacons()
.
options
Optional-
Ein Optionsobjekt, das die folgenden Eigenschaften enthalten kann:
data
Optional-
Ein Objekt, das alle Daten darstellt, die zum Ausführen der Operation benötigt werden.
keepAlive
Optional-
Ein boolescher Wert. Wenn auf
true
gesetzt, wird derSharedStorageWorkletGlobalScope
des zugehörigen Worklets aufrechterhalten, und die Operation kann erneut ausgeführt werden. Daher müssen SiekeepAlive
für jede Operation auftrue
setzen, die nicht die letzte sein soll. Der Standardwertfalse
bedeutet, dass derSharedStorageWorkletGlobalScope
nach der 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 vonrun()
zurückgegebenenPromise
einFencedFrameConfig
-Objekt sein, das verwendet werden kann, um Inhalte in einen<fencedframe>
über seinconfig
-Attribut zu laden. Der Standardwertfalse
bedeutet, dass der Erfüllungswert eine URL sein wird, mit der Inhalte in ein<iframe>
geladen werden können.
Rückgabewert
Ein Promise
, das entweder mit einem FencedFrameConfig
-Objekt oder einem String, der eine URL darstellt, 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 zulässige Länge überschreitet (wird von Browser zu Browser unterschiedlich gehandhabt).- Die
url
-Eigenschaft eines Objekts eine ungültige URL enthält. - Gemeinsamer Speicher deaktiviert ist (zum Beispiel über eine Browsereinstellung).
- Die aufrufende Seite nicht über die Shared Storage API verfügt, die in einem erfolgreichen Privacy Sandbox-Anmeldeprozess enthalten ist.
- Das Worklet-Modul noch nicht mit
Beispiele
Grundlegendes A/B-Testing
// 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-Hauptseite für eine Schritt-für-Schritt-Anleitung zu diesem Beispiel und Links zu weiteren Beispielen.
Spezifikationen
No specification found
No specification data found for api.WindowSharedStorage.selectURL
.
Check for problems with this page or contribute a missing spec_url
to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
Browser-Kompatibilität
No compatibility data found for api.WindowSharedStorage.selectURL
.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.