Spec-Zone.ru › Web APIs

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 совместного хранилища в успешном процессе регистрации процесса регистрации песочницы конфиденциальности.

Примеры

Базовое 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.

Совместимость с браузерами

См. также

  • API совместного хранилища

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API