PaymentRequest: shippingaddresschange 事件

安全上下文: 此功能仅在安全上下文 (HTTPS) 中,以及某些或所有支持的浏览器 中可用。

已弃用: 此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已被从相关的 Web 标准中删除,可能正在被丢弃,或者可能只被保留用于兼容性目的。避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表,以指导您的决策。请注意,此功能可能随时停止工作。

非标准: 此功能是非标准的,并且不在标准化轨道上。不要在面向 Web 的生产网站上使用它:它不会为每个用户工作。在实现之间也可能存在很大差异,并且行为可能会在将来发生变化。

当用户选择一个送货地址或更改其送货地址的详细信息时,shippingaddresschange 事件将发送到PaymentRequest 对象。

此事件不可取消,并且不会冒泡。

语法

在诸如addEventListener() 的方法中使用事件名称,或设置一个事件处理程序属性。

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

onshippingaddresschange = (event) => {};

事件类型

事件属性

仅提供从Event 继承的属性。

使用说明

根据浏览器的不同,送货地址信息可能会出于隐私原因被涂黑。也就是说,包含送货地址的PaymentAddress 的某些部分的内容可能会被更改、遮盖或完全省略,以防止在未经用户同意的情况下识别用户(因为如果他们选择让您将产品运送给他们,您将需要他们的地址)。

示例

在这个示例中,为 shippingaddresschange 事件设置了一个处理程序,以验证地址是否满足 Web 应用程序设置的要求。

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

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

const checkAddress = (theAddress) => {
  let detailsUpdate = {};

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

  return detailsUpdate;
};

您还可以使用 onshippingaddresschange 事件处理程序属性来建立 shippingaddresschange 的处理程序

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

浏览器兼容性

BCD 表格仅在浏览器中加载