#&q=car&category=Car%20Audio%2CAccessories&brand=
tôi mượn một chức năng này từ một câu hỏi trước hỏi về SO:Làm cách nào để thay thế% 2C bằng <comma> trong javascript?
function insertParam(key, value)
{
key = escape(key); value = escape(value);
var kvp = document.location.hash.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {kvp[kvp.length] = [key,value].join('=');}
//this will reload the page, it's likely better to store this until finished
document.location.hash = kvp.join('&');
}
tôi sử dụng nó như thế này:
insertParam("category",xy);
insertParam("brand",zy);
Vấn đề của tôi là nó được giải mã của dấu phẩy để% 2C. Tôi biết tôi có thể xử lý các nhân vật ở phía máy chủ, nhưng làm thế nào tôi có thể làm cho nó trông đẹp với javascript? Theo tôi khá có nghĩa là thay thế% 2c bằng dấu phẩy.
RPM muốn để lưu trữ cặp khóa-giá trị trong băm, tách bởi '=' và '&' (như GET-tham số). Để làm như vậy đúng, '=' và '&' phải được mã hóa, có thể được thực hiện bằng cách sử dụng 'decodeURIComponent' hoặc' escape'. Cả hai chức năng này, tuy nhiên, cũng mã hóa ',' mà không được mong muốn. 'decodeURI' không mã hóa' = 'hoặc' & 'vì vậy nó cũng không phù hợp. – copy
@copy Tôi không chắc tại sao ',' không được mã hóa. – Cheery
Nó "trông không đẹp" (không phải ý kiến cá nhân của tôi). Ngoài ra nó không thực sự cần thiết. – copy