网上的JS获取url参数方法有坑,并改进

    技术2023-08-11  105

    最近在学习前端项目时,有个需求是跳转页面获取url的参数并输出在页面上。于是,度娘走起,找到两个js函数,测试。 然后测试发现,两个函数都是单独测试ok,但是在模板里测试就数据显示不出来。经过排查,发现是window.location中的search出现问题。

    单独测试: 模板测试:

    继续度娘排查,了解到window.location中的属性,其中search和hash属性就存在冲突。 经测试,验证了说明,说明如下:

    对于生产环境中,url中很少存在#,所以用search不会有太多问题。但是在测试环境中,#会出现较多,用search就会出现问题,因此改进用window.location中的href,并测试成功。

    <script text="text/javascript"> function getQueryString(variable) { var reg = new RegExp("(^|&)" + variable + "=([^&]*)(&|$)", "i"); var r = window.location.href.split('?')[1].match(reg); if (r != null) return unescape(r[2]); return null; } </script>

    Processed: 0.032, SQL: 9