Layui open 新界面后使用 JS 获取 URL 参数
使用 Layui 打开新界面时,
可能会传递一些参数,
如详情页,我会传递一个详情 ID
字段作为标识,
再由详情页的 JS 代码通过 ID
参数进行请求获得数据,
我测试了以下代码:
layui.use(['layer'], function () {
var router = layui.router();
var id = router.search.id;
});
可能是由于我的方法不对,
最终无论传递怎么样的数据,
router.search
所获得对象始终是空对象 {}
,
所以不得不另辟蹊径。
实现
使用 window.location.search.substr(1)
拿到 URL 中参数字符串,
再利用正则数据进行获取,
最终的我们仅仅需要使用 getQueryString('id')
就可以拿到 ID
的数据内容。
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
}
return '';
}
优化方案
url = new URL('https://moas.medusasorcerer.com?a=2&b=1&c=abc')
params = new URLSearchParams(url.search.slice(1))
params.getAll('a')
params.get('c')
为达目的,不择手段的写了很多冗余代码,哈哈哈~ 我是个混子
转载自:https://juejin.cn/post/6885509010766856200