PaymentRequest: shippingaddresschange 事件
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
当用户选择送货地址或更改其送货地址的详细信息时,会向 PaymentRequest 对象发送 shippingaddresschange 事件。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("shippingaddresschange", (event) => { })
onshippingaddresschange = (event) => { }
事件类型
一个 PaymentRequestUpdateEvent。继承自 Event。
事件属性
仅提供从 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);
};
浏览器兼容性
加载中…