Mac版Safari中Wix获取URL参数失败问题及解决需求
解决Wix代码在Safari中无法获取URL参数的问题
问题原因
Safari中Wix的路由初始化速度较慢,$w.onReady触发时wixLocation.query尚未完成参数解析,导致获取结果为undefined。
方案一:监听路由变化确保参数加载完成
通过wixLocation.onChange监听路由状态变化,同时初始化时也检查一次当前参数,覆盖首次加载和路由变更两种场景:
import wixLocation from 'wix-location'; import { fetch } from 'wix-fetch'; $w.onReady(function () { // 监听路由变化处理参数 wixLocation.onChange((location) => { const query = location.query['id']; if (query) { const id = decodeURIComponent(query); console.log(id); // 在这里编写你的业务逻辑 } }); // 初始化时检查当前参数 const initialQuery = wixLocation.query['id']; if (initialQuery) { const id = decodeURIComponent(initialQuery); console.log(id); // 处理页面初始化时的业务逻辑 } })
方案二:手动解析URL参数(最可靠兼容方案)
直接通过原生URL对象解析完整URL的查询参数,完全绕过Wix路由初始化的兼容性问题:
import wixLocation from 'wix-location'; import { fetch } from 'wix-fetch'; $w.onReady(function () { const url = new URL(wixLocation.url); const id = url.searchParams.get('id'); if (id) { const decodedId = decodeURIComponent(id); console.log(decodedId); // 在这里编写你的业务逻辑 } })
内容的提问来源于stack exchange,提问作者direktor
相关产品推荐
相关产品推荐

