0

我使用来自 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>

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

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

示例输出将是FirstName%20LastName

有没有办法%20可以去掉?

4

3 回答 3

6

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

您可以使用 decodeURI ( http://www.w3schools.com/jsref/jsref_decodeuri.asp )

编辑:

这是一个有效的 js-fiddle。

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

document.getElementById('demo').innerHTML = result;

http://jsfiddle.net/p82HN/

于 2013-02-21T14:31:43.060 回答
0

该数据是 URL 编码的,所以使用decodeURIdecodeURIComponent解码它:

var result = decodeURI(input);
于 2013-02-21T14:30:36.603 回答
0

看起来您需要对数据进行 urldecode,请查看decodeURIComponent()

于 2013-02-21T14:33:06.957 回答