当我触发弹出式窗口时,我在Chrome中遇到类型错误,但在Safari浏览器中找不到。
打开窗口时,将触发以下事件侦听器:
window.addEventListener('load', () => {
window.opener.postMessage('ready','https://oaklanding.myshopify.com');
console.log("READY")
})
window.addEventListener('message', event => {
storeInfo = event.data
console.log("storeInfo: ", storeInfo)
var url = event.data.url
console.log("event.data.url: ", url)
if (url.indexOf('?') !== -1) {
const urlParams = new URLSearchParams(url.substring(url.indexOf('?')));
globalVariant = urlParams.get('variant')
console.log(globalVariant)
getInfo(storeInfo, parseInt(globalVariant))
} else {
getInfo(storeInfo, -1)
}
updateAccount()
}, false)
我尝试将这些事件侦听器包装在一个函数中,然后在DOMContentLoaded
上调用该函数,但这不起作用。
最终会找到诸如event.data.url
之类的数据,但是当我尝试将信息键入表单时,它又给了我另一个未捕获的类型错误:
似乎事件是在加载DOM之前触发的... 我不知道为什么这种情况只会在Chrome上发生,而在Safari和Chrome隐身模式下却能完美显示?