PaymentRequest: событие shippingoptionchange
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или может быть сохранена только для совместимости. Избегайте её использования и, если возможно, обновите существующий код; см. таблицу совместимости в нижней части этой страницы для принятия решения. Имейте в виду, что эта функция может перестать работать в любое время.
Нестандартно: Эта функция нестандартна и не соответствует стандартам. Не используйте её на производственных сайтах, обращённых к Интернету: она не будет работать для каждого пользователя. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.
Для запросов оплаты, которые запрашивают информацию о доставке и для которых предлагаются варианты доставки, событие shippingoptionchange отправляется в PaymentRequest всякий раз, когда пользователь выбирает вариант доставки из списка доступных вариантов.
Строка, определяющая текуще выбранный вариант доставки, находится в свойстве shippingOption.
Это событие не может быть отменено и не распространяется.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.
addEventListener("shippingoptionchange", (event) => {});
onshippingoptionchange = (event) => {};
Тип события
A PaymentRequestUpdateEvent. Наследуется от Event.
Свойства события
Предоставляет только свойства, унаследованные от Event.
Примеры
Этот фрагмент кода устанавливает обработчик для события shippingoptionchange. Код пересчитывает общую стоимость оплаты на основе выбранного варианта доставки. Например, если есть три варианта (такие как «Бесплатная доставка по наземной почте», «Доставка на следующий день» и «Доставка на следующий день»), каждый раз, когда пользователь выбирает один из этих вариантов, этот обработчик событий вызывается для перерасчета общей стоимости на основе изменённого варианта доставки.
paymentRequest.addEventListener(
"shippingoptionchange",
(event) => {
const value = calculateNewTotal(paymentRequest.shippingOption);
const total = {
currency: "EUR",
label: "Total due",
value,
};
event.updateWith({ total });
},
false,
);
После вызова пользовательской функции calculateNewTotal(), чтобы вычислить обновлённую общую сумму на основе вновь выбранного варианта доставки, как указано в shippingOption. Пересмотренная общая сумма отправляется обратно в запрос оплаты, вызывая метод updateWith() события.
Вы также можете создать обработчик событий для shippingoptionchange, используя соответствующее свойство обработчика событий onshippingoptionchange:
paymentRequest.onshippingoptionchange = (event) => {
const value = calculateNewTotal(paymentRequest.shippingOption);
const total = {
currency: "EUR",
label: "Total due",
value,
};
event.updateWith({ total });
};
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
shippingoptionchange_event |
60 | 15 | 55 | 47 | 11.1 | 53 | Нет | 44 | 11.3 | 6.0 | Нет |
© 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/PaymentRequest/shippingoptionchange_event