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エンコードされているため、decodeURIまたはdecodeURIComponentを使用してデコードします。

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

データをurldecodeする必要があるようです。チェックアウトしてくださいdecodeURIComponent()

于 2013-02-21T14:33:06.957 に答える