被#坑了。哎,#需要进行encodeURIComponent()编码,默认为锚点,#之后字符会被截取。
1、encodeURI() 函数
对url进行编码。
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码
2、encodeURIComponent() 函数
对url进行编码。
3、encodeURI() 函数和 encodeURIComponent() 函数 区别
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
console.log(encodeURIComponent("http://www.w3school.com.cn"))
console.log("<br />")
console.log(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
console.log("<br />")
console.log(encodeURIComponent(",/?:@&=+$#"))
console.log(encodeURI("http://www.w3school.com.cn"))
console.log("<br />")
console.log(encodeURI("http://www.w3school.com.cn/p 1/"))
console.log("<br />")
console.log(encodeURI(",/?:@&=+$#"))
//"http%3A%2F%2Fwww.w3school.com.cn"
//"<br />"
//"http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F"
//"<br />"
//"%2C%2F%3F%3A%40%26%3D%2B%24%23"
//"http://www.w3school.com.cn"
//"<br />"
//"http://www.w3school.com.cn/p%201/"
//"<br />"
//",/?:@&=+$#"
网友评论