WindowSharedStorage: метод selectURL()
Экспериментально: Это экспериментальная технология
Перед использованием в рабочей среде тщательно проверьте таблицу совместимости с браузерами.
Метод selectURL() интерфейса WindowSharedStorage выполняет операцию выбора URL, зарегистрированную в модуле, добавленном в SharedStorageWorklet текущего источника.
Примечание: Шлюз вывода выбора URL используется для выбора URL из предоставленного списка, который будет отображен пользователю на основе данных совместного хранилища.
Синтаксис
selectURL(name, urls) selectURL(name, urls, options)
Параметры
name-
Строка, представляющая имя зарегистрированной операции в модуле совместного хранилища. Оно должно совпадать с именем операции, присвоенным при её регистрации с помощью
SharedStorageWorkletGlobalScope.register(). urls-
Массив объектов, представляющих URL, между которыми должна выбрать операция выбора URL. Каждый объект содержит две свойства:
url-
Строка, представляющая URL.
reportingMetadataНеобязательно-
Объект, содержащий свойства, где имена — типы событий, а значения — URL, указывающие на места назначения отчётов, например
"click" : "my-reports/report1.html". URL служат местами назначения для отчётов, отправленных с типом места назначения"shared-storage-select-url", обычно отправляемых с помощью методаFence.reportEvent()илиFence.setReportEventDataForAutomaticBeacons().
optionsНеобязательно-
Объект параметров, который может содержать следующие свойства:
dataНеобязательно-
Объект, представляющий любые данные, необходимые для выполнения операции.
keepAliveНеобязательно-
Логическое значение. Если установлено в
true,SharedStorageWorkletGlobalScopeсвязанного модуля сохраняется активным, и операция может быть запущена повторно. Поэтому необходимо установитьkeepAliveвtrueдля каждой операции, которая не должна быть последней. Значение по умолчаниюfalse, означает, чтоSharedStorageWorkletGlobalScopeзавершается после выполнения операции и не может быть запущена повторно. resolveToConfigНеобязательно-
Логическое значение. Если установлено в
true, значение выполненияPromise, возвращаемоеrun(), будет объектомFencedFrameConfig, который можно использовать для загрузки содержимого в<fencedframe>через его атрибутconfig. Значение по умолчаниюfalse, означает, что значение выполнения будет URL, который можно использовать для загрузки содержимого в<iframe>.
Возвращаемое значение
Promise, который выполняется с объектом FencedFrameConfig или строкой, представляющей URL, в зависимости от значения параметра resolveToConfig.
Исключения
TypeError-
Выбрасывается, если:
- Модуль worklet еще не добавлен с помощью
addModule(). -
urlsпустое или превышает максимальную разрешенную длину (которая зависит от браузера). - Свойство
urlобъекта содержит недопустимый URL. - Совместное хранилище отключено (например, через настройки браузера).
- В вызывающем месте отсутствует включенная API совместного хранилища в успешном процессе регистрации процесса регистрации песочницы конфиденциальности.
- Модуль worklet еще не добавлен с помощью
Примеры
Базовое A/B-тестирование
// 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();
См. страницу API совместного хранилища для пошагового руководства по этому примеру и ссылок на другие примеры.
Спецификации
Данные спецификаций для api.WindowSharedStorage.selectURL не найдены.
Проверьте проблемы с этой страницей или внесите недостающую spec_url в mdn/browser-compat-data. Также убедитесь, что спецификация включена в w3c/browser-specs.
Совместимость с браузерами
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WindowSharedStorage/selectURL