最近做表单提交需要获取 url 中携带的 user_id 一起提交,我开始用的方法直接定位 indexOf('user_id') 截取,后面就不判断了(假设 url 中只有 user_id 这个键名)。
虽然 url 中只存在 user_id,结果也行得通,但是!曾经做过一个手机端的页面,页面分享到微信时,微信会自动在 url 后面添加额外的键名,所以导致我写的js解析出错。
所以在获取的过程中需要更谨慎一点,传入key值就可返回对应的value。需要注意的是,IE低版本并不支持indexOf()方法。
function get_value_from_url(key) { var href = window.location.href; var index = href.indexOf(key); if(href.indexOf('&', index) > 0) { return href.slice(index+key.length+1, href.indexOf('&', index)) } else { return href.slice(index+key.length+1) } }