0

現在のページから次のページにコードをデコードするときに、テキストフィールドに %20 を追加せずに値を取得できないように、URL リンクの %20 をデコードしようとしています。以下は、%20 をデコードするためのコーディングと配置場所です。

function loadRecord(i){
    var item=dataset.item(i);
    fname.value = item['fname'];
    id.value = item['id'];
    window.location.href = decodeURIComponent("userup2.html?id="+item['id']+"&fname="+item['fname']+"&val=300");
    return false;
}

これは現在のもので、データを表示するために 2 番目のページにリダイレクトされます

ここに画像の説明を入力

ここに画像の説明を入力

decodeURIComponent をコーディングしても %20 が表示されるのはなぜですか? 助けてください

4

2 に答える 2

1

入力に渡されるときに URI をデコードする必要があります。デコードして渡すwindow.locationのは正しいですが、ブラウザは再びエスケープします。

パラメータから入力値を取得すると仮定します。したがって、params から入力値を設定する場所 (あなたの場合、確かに documentuserup2.htmlで、URI をデコードする必要があります。

そのため、params から入力値を設定する場合は、再度デコードする必要があります。

document.getElementByTagName('input').value = decodeURI(...your code to get the params);
于 2012-07-11T07:17:22.227 に答える
0

decodeURIComponent をコーディングしても %20 が表示されるのはなぜですか?

ブラウザは、有効な URL にするために URL をエンコードしています。デコードしていても、再び window.location.href に割り当てられるため、コントロールはブラウザに戻ります。

バイパスすることはできません。代わりに、受信側で URL をデコードします。

于 2012-07-11T07:18:33.717 に答える