L'élément en question est un champ de formulaire de zone de texte. La chaîne de requête que j'ai ajoutée à l'URL fonctionne bien partout sauf dans la zone de texte. Si j'entre "Life is hard" dans le champ textarea du formulaire un, il remplit le champ textarea dans le formulaire cible ainsi: "Life% 20is% 20hard" Existe-t-il un moyen d'échapper aux espaces après ou pendant qu'ils sont ajoutés SANS codage quoi que ce soit en dehors du plugin UX? Comme, juste là dans la chaîne de requête ou les paramètres?
2 réponses
Le contenu de la chaîne de requête est toujours codé en URI, ce qui signifie que lorsque vous l'utilisez, vous toujours devez le décoder en URI. En supposant que votre chaîne de requête utilise le formulaire name=value&name=value
habituel:
const entries = queryString.split("&").map(
entry => entry.split("=").map(
part => decodeURIComponent(part)
)
);
entries
est maintenant un tableau de [key, value]
tableaux avec le contenu de la chaîne de requête, correctement décodé pour être utilisé (comme remplir un textarea
).
Exemple:
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>
Si la chaîne de requête n'est pas sous la forme name=value
, si c'est simplement ce que vous voulez dans la zone de texte, c'est plutôt simple:
theTextArea.value = decodeURIComponent(queryString);
Exemple:
const queryString = "Life%20is%20good";
document.getElementById("text1").value = decodeURIComponent(queryString);
<textarea id="text1"></textarea>
L'URL sera encodée par elle-même,% 20 c'est comme ça que ça marche.
Chemin court:
decodeURI(str)
ou essayez avec:
document.write(unescape(str))
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.