(Пожалуйста, не читайте лекций о том, как это неправильный способ создания URL-адресов и т. Д. Это устаревший код, и мне нужно больше ловить рыбу. Я просто хочу знать, что браузер думает, что это делает.)
С учетом следующей функции:
function redirectToSearch(baseURL) {
var searchString = document.getElementById("searchBox").value;
document.location = baseURL + "&searchString=" + searchString;
}
где элемент searchBox
является текстовым полем: если вы введете что-то вроде
{ a ^ b } " c | d "
в текстовом поле и вызов этой функции, результирующий URL-адрес, как перенаправлено, заканчивается на
searchString={%20a%20^%20b%20}%20%22c%20|%20d%22
- пробелы и кавычки экранированы, но ничего больше, хотя {
, }
и |
также должны быть недопустимыми символами. Это похоже на правду в Chrome, Firefox и IE.
Хорошо, вероятно, я могу исправить это, кодируя строку самостоятельно, но я хочу знать, почему только пробелы и кавычки (и, возможно, другие символы, которые я не обнаружил)? Почему не все недопустимые символы или нет?