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);
};

浏览器兼容性