PaymentRequest: shippingaddresschange 事件

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

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

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

當用戶選擇送貨地址或更改其送貨地址的詳細資訊時,會向 PaymentRequest 物件傳送 shippingaddresschange 事件。

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

語法

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

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

onshippingaddresschange = (event) => { }

事件型別

一個 PaymentRequestUpdateEvent。繼承自 Event

Event PaymentRequestUpdateEvent

事件屬性

僅提供從 Event 繼承的屬性。

用法說明

根據瀏覽器,出於隱私原因,送貨地址資訊可能會被隱藏。也就是說,包含送貨地址的 PaymentAddress 可能會對其內容的一部分進行修改、遮擋或完全省略,以防止在未經使用者同意的情況下識別使用者(因為如果他們選擇讓您將產品運送給他們,您就需要他們的地址)。

示例

在此示例中,設定了 shippingaddresschange 事件的處理器來驗證地址是否符合 Web 應用程式的要求。

js
const paymentRequest = new PaymentRequest(methodData, details, options);

paymentRequest.addEventListener("shippingaddresschange", (event) => {
  const detailsUpdate = checkAddress(paymentRequest.shippingAddress);
  event.updateWith(detailsUpdate);
});

function checkAddress(theAddress) {
  const detailsUpdate = {};

  // Check the address, return an object with any changes or errors.

  return detailsUpdate;
}

您也可以使用 onshippingaddresschange 事件處理程式屬性來建立 shippingaddresschange 的處理器。

js
paymentRequest.onshippingaddresschange = (event) => {
  const detailsUpdate = checkAddress(paymentRequest.shippingAddress);
  event.updateWith(detailsUpdate);
};

瀏覽器相容性