PaymentRequest: shippingaddresschange 事件
已弃用: 此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已被从相关的 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 表格仅在浏览器中加载