我有一個搜索輸入框,我將它的數據附加到「#」後面的URL,例如http://test.cl.com/#pqr xyz
(使用散列來避免重新加載頁面)。它工作正常,但我的數據沒有被編碼,因爲空間不被替換爲+
或%20
所以在添加之前,我使用encodeURI
函數,然後將該值附加到URL,但仍然在地址欄中存在空格字符。在分配之前,我已經檢查過我正在追加正確的值(通過提醒prq%20xyz
)。如何將編碼參數追加到使用JavaScript的URL?
電流輸出:http://test.cl.com/#pqr xyz
需要的輸出:http://test.cl.com/#pqr+xyz
請幫我找出概率的原因。謝謝!
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="jquery1.6.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#btn').click(function(){
var url = encodeURI("pqr xyz");
alert(url); // shows encoded value
window.location.hash = (url);
});
});
</script>
</head>
<body>
<h3>sample app</h3>
<button id="btn">
append
</button>
</body>
只是一個額外的評論:你不需要警告字符串或對象來確認內容或狀態。你可以使用console.log(url);它會彈出在谷歌瀏覽器和Firefox的控制檯(不知道IE瀏覽器)。 – mahulst
無法理解:問題是什麼?在瀏覽器中替換地址欄中空格的「+」或「%20」?你真的很重要?有什麼不同? –