删除输出的%20

tmv*_*331 0 javascript html-encode

我使用了来自aweber的代码,该代码将用户信息从注册传递到了下一页,这是来自aweber的代码

<script type="text/javascript"> 
    var formData = function(){
        var query_string = (location.search)?((location.search.indexOf('#') != -1) ? location.search.substring(1, location.search.indexOf('#')) : location.search.substring(1)) : '';
        var elements = [];
        if(query_string){
            var pairs = query_string.split("&");
            for(i in pairs) { 
                if (typeof pairs[i] == 'string') {
                    var tmp = pairs[i].split("="); 
                    var queryKey = unescape(tmp[0]);
                    queryKey = (queryKey.charAt(0) == 'c') ? queryKey.replace(/\s/g, "_") : queryKey;elements[queryKey] = unescape(tmp[1]);
                }
            }
        }
        return{display: function(key){if(elements[key]){document.write(elements[key]);
    }else {
        document.write("<!--If desired, replace everything between these quotes with a default in case there is no data in the query string.-->");
    }}}}();
</script>
Run Code Online (Sandbox Code Playgroud)

这是页面上显示名称的代码

<script type="text/javascript">formData.display("fullname")</script>

示例输出将是 FirstName%20LastName

有没有一种方法%20可以删除?

Ste*_*nno 6

%20是url编码中空格的符号。由于某种原因,您的函数会返回经过url编码的数据。尝试对输出进行url解码,您的%20应该表示为空格。

您可以使用解码URI(http://www.w3schools.com/jsref/jsref_decodeuri.asp

编辑:

这是一个有效的js小提琴。

var result = 'Firstname%20Lastname';
var result = decodeURI(result);

document.getElementById('demo').innerHTML = result;
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/p82HN/