0

スクリプトを使用して URL から変数を取得し、それをデコードします。「userName」は正確です。

ただし、スクリプトは英語の文字でのみ機能し、デンマーク語やその他のラテン文字では機能しません. どうすればこれを通過できますか?

名前が「Jørgen-Vælle Jürgensen」の場合、スクリプトは「Jørgen-Vælle Jürgensen」を出力します...期待したほど静かではありません... :-)

脚本:

//Get the variable userName from URL
$.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
  while(x<c.length){var m=r.exec(c.substr(x));
    if(m!=null && m.length>1 && m[1]!=''){o+=m[1];x+=m[1].length;
    }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
    o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;},
URLDecode:function(s){var o=s;var binVal,t;var r=/(%[^%]{2})/;
  while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){b=parseInt(m[1].substr(1),16);
  t=String.fromCharCode(b);o=o.replace(m[1],t);}return o;}
});


$.extend({
    getUrlVars: function () {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function (name) {
        return $.getUrlVars()[name];
    }
});

_allVars = $.getUrlVars();
var userName = _allVars.userName;

$(".userName").text($.URLDecode(userName));

どうすればいいですか??

前もって感謝します。

4

4 に答える 4

3

デコードURIコンポーネントを参照してください

于 2011-05-24T10:33:36.893 に答える
1

URLをデコードする必要があります。$.URLDecode(url)はあなたの友達です =) これはプラグインです (jQuery またはプレーンな JavaScript に組み込みの方法があるかもしれませんが、これは Google で最初にヒットしたものです)。

于 2011-05-24T10:34:24.973 に答える
0

javascript の decodeURIComponent 関数を使用して URL をデコードします。

于 2011-05-24T10:36:33.420 に答える
0

それ以外の:

$(".userName").text($.URLDecode(userName));

これを使って

$(".userName").text(decodeURI(userName)+ "");

答えは、JavaScript のみを使用することです。これにより、非常にシンプルになります。

于 2011-05-24T16:43:15.703 に答える