Содержимое строки запроса: всегда в кодировке URI, что означает, что при его использовании всегда необходимо его URI-декодировать. Предполагая, что ваша строка запроса использует обычную форму name=value&name=value
:
const entries = queryString.split("&").map(
entry => entry.split("=").map(
part => decodeURIComponent(part)
)
);
entries
теперь является массивом массивов [key, value]
с содержимым строки запроса, правильно декодированным для использования (например, заполнениев textarea
).
Пример:
const queryString = "this=that&a=b&text1=Life%20is%20good&x=y";
const entries = queryString.split("&").map(
entry => entry.split("=").map(
part => decodeURIComponent(part)
)
);
for (const [name, value] of entries) {
if (name === "text1") {
document.getElementById(name).value = value;
} else {
console.log(`Value for ${name}: ${value}`);
}
}
<textarea id="text1"></textarea>
Если строка запроса не в name=value
форме, если это просто то, что вы хотите в текстовой области, это скореепроще:
theTextArea.value = decodeURIComponent(queryString);
Пример:
const queryString = "Life%20is%20good";
document.getElementById("text1").value = decodeURIComponent(queryString);
<textarea id="text1"></textarea>