如何利用URL中的?符号修改JavaScript变量?
URL查询字符串(?分隔符)作用及问题解决
先搞懂?的作用
URL里的?是查询字符串的起始标记,用来在域名/页面路径后面传递键值对参数,比如?variable=working里,variable是参数名,working是对应的值。这些参数不会自动变成JS里的变量,得自己写代码读取。
你的问题出在哪
你直接给variable赋值了"Not Working",而且代码里alert的是未定义的url变量(应该是想弹variable?),完全没去读取URL里带的参数,所以自然只会弹出初始值。
解决代码
用现代浏览器支持的URLSearchParams API就能轻松获取参数:
// 解析当前页面的URL查询参数 const params = new URLSearchParams(window.location.search); // 获取variable参数的值,没有的话用默认值"Not Working" const variable = params.get('variable') || "Not Working"; // 弹出获取到的参数值 alert(variable);
额外提醒
- 如果你的链接是
?variable="working",获取到的值会带引号,要是不需要引号,链接直接写?variable=working就行。 - 要是得兼容老浏览器,可以手动拆分
window.location.search字符串:先去掉开头的?,再按&分割成多个键值对,最后逐个解析提取参数。
内容的提问来源于stack exchange,提问作者Jude5902
相关产品推荐
相关产品推荐

