我正在使用以下代码来显示由点击跟踪程序在网页的URL中传递的结果。以下是“ / head”标签之前的内容:
<script>
function getURLParameter(name) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] === name){return pair[1];}
}
return "";
}
</script>
以下是“ body”标记中的显示结果:
<script>document.write(getURLParameter('name'))</script>
但是,问题是,如果结果是两个单词,则显示看起来像"Word20%Word"
有人可以帮忙吗?
谢谢。
答案 0 :(得分:2)
要使具有非URL友好字符(例如空格)的字符串变为url友好,我们对其进行编码。
用于此目的的浏览器api是encodeURIComponent
。
要解码回一个编码的字符串,我们使用decodeURIComponent
。
const string = 'i have spaces';
const encoded = encodeURIComponent(string);
console.log(encoded);
const decoded = decodeURIComponent(encoded);
console.log(decoded);
答案 1 :(得分:0)
您要签出decodeURIComponent()
,它负责将这些实体(%20等)解码回相应的对应实体:
function getURLParameter(name) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] === name){return decodeURIComponent(pair[1]);}
}
return "";
}