如何将脚本中的值追加到URL?使用window.location实现失败求助
修正代码:将值追加到URL的正确写法
你代码里的问题主要出在变量重复赋值和错误调用属性上:
- 函数参数已经是
elm,你又重新定义了同名变量elm,并且直接获取了隐藏输入框的value,这时候elm已经是字符串类型,再调用elm.value就会得到undefined,导致URL拼接错误。 - 另外,直接拼接
?updateid=...会覆盖原URL的参数,如果需要保留原有参数,得用更稳妥的方式处理。
基础修正版(覆盖原有参数)
function handleSelect1() { // 获取隐藏输入框的值,用不同变量名避免冲突 var corporateId = document.getElementById('hiddencorporateId').value; // 拼接URL并跳转 window.location = window.location.origin + window.location.pathname + "?updateid=" + corporateId; }
进阶版(保留原有URL参数)
如果需要保留原URL里的其他参数,只追加/更新updateid,可以用URLSearchParams来处理:
function handleSelect1() { var corporateId = document.getElementById('hiddencorporateId').value; // 基于当前URL的查询参数创建对象 const params = new URLSearchParams(window.location.search); // 设置updateid参数(已存在则覆盖) params.set('updateid', corporateId); // 拼接新URL并跳转 window.location = `${window.location.origin}${window.location.pathname}?${params.toString()}`; }
内容的提问来源于stack exchange,提问作者CodeRak
相关产品推荐
相关产品推荐

