PaymentRequest: shippingoptionchange 事件

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

對於那些請求送貨資訊的支付請求,並且提供了送貨選項的,每當使用者從可用選項列表中選擇一個送貨選項時,就會向 PaymentRequest 傳送 shippingoptionchange 事件。

當前選定的送貨選項的字串可以在 shippingOption 屬性中找到。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("shippingoptionchange", (event) => { })

onshippingoptionchange = (event) => { }

事件型別

一個 PaymentRequestUpdateEvent。繼承自 Event

Event PaymentRequestUpdateEvent

事件屬性

僅提供從 Event 繼承的屬性。

示例

此程式碼段為 shippingoptionchange 事件設定了一個處理程式。該程式碼根據所選的送貨選項重新計算支付的總費用。例如,如果有三個選項(例如“免費陸運”、“兩天空運”和“次日達”),每次使用者選擇其中一個選項時,都會呼叫此事件處理程式來根據更改的送貨選項重新計算總額。

js
paymentRequest.addEventListener("shippingoptionchange", (event) => {
  const value = calculateNewTotal(paymentRequest.shippingOption);
  const total = {
    currency: "EUR",
    label: "Total due",
    value,
  };
  event.updateWith({ total });
});

呼叫自定義函式 calculateNewTotal() 來根據 shippingOption 指定的新選送貨選項計算更新後的總額後,透過呼叫事件的 updateWith() 方法將修訂後的總額提交回支付請求。

您也可以使用其對應的事件處理程式屬性 onshippingoptionchange 來建立 shippingoptionchange 的事件處理程式。

js
paymentRequest.onshippingoptionchange = (event) => {
  const value = calculateNewTotal(paymentRequest.shippingOption);
  const total = {
    currency: "EUR",
    label: "Total due",
    value,
  };
  event.updateWith({ total });
};

瀏覽器相容性