var linkHref = '
http://m.home.cn/liveList/live?liveId=185&broadcasterId=692388&uskey=a81999440aa5488bb049d067a5090c1b&room=1184&chat=@TGS#355V5GBEC&title=%E5%93%84';
我要把上面地址里的chat
参数@TGS#355V5GBEC
传给后台
但是传过去后就剩下@TGS
了
我用下面的这种方法获取chat
参数,也用了encodeURIComponent
进行编码,但还是不行,这是怎么回事??
function getQueryString(name, source) {
var reg = new RegExp('(^|\\?|&|\\/?)' + name + '(\\/|=)(\\d+|[^&]*)(\\?|&|$)', 'i'),
source = source || window.location.search,
r = source.match(reg)
if (r != null) return unescape(r[3])
return null
}
var chat = encodeURIComponent(getQueryString('chat',linkHref));
PHP中文网2017-04-11 11:46:05
地址里#为特殊字符,默认参数获取时候会忽略#后面的内容,进行一次url转码,浏览器默认会还会转解码#处理,所以数据会被截断。
在处理时候对字符串进行两次url转码,接到参数值后进行2次解码即可。