JavaScript et les barres obliques dans les chaînes
Quelle est la vraie raison que nous devons échapper à une barre oblique dans un JavaScript chaîne, et aussi pourquoi devons-nous échapper à la chaîne/pas de chaîne en XHTML. Beaucoup de tutoriels juste une brosse sur cette question.
Quelle est la vraie raison que nous devons échapper à une barre oblique dans un JavaScript chaîne
Dans un document HTML 4, la séquence </ à l'intérieur d'un élément défini comme contenant CDATA (comme le script) est une balise de fin, et ce sera la fin de l'élément (avec une erreur si elle n'est pas </script>.
Autant que le JS est concerné / et \/ sont identiques à l'intérieur d'une chaîne. Aussi loin que le HTML est concerné </ commence une balise de fin, mais <\/ ne pas.
et aussi pourquoi devons-nous échapper à la chaîne/pas de chaîne en XHTML.
XHTML n'est pas un moyen de spécifier qu'un élément intrinsèquement contient CDATA, de sorte que vous devez explicitement poignée de personnages qui auraient une signification particulière (<, &, etc). Emballage le contenu de l'élément avec CDATA marqueurs est la façon la plus simple pour atteindre cet objectif.
Donc, nous n'avons jamais à échapper à une seule barre oblique, seulement un </ ? si c'est du XHTML à l'intérieur d'une chaîne ou à l'extérieur d'une chaîne de caractères? Merci 🙂 En d'autres termes, XHTML quand devons-nous échapper à une barre oblique? En "normal" XHTML (que personne n'utilise), jamais. En HTML-XHTML compatible (dont tout le monde qui veut IE 8 et plus bas pour être pris en charge utilise), les mêmes endroits que dans le HTML. Donc, @rubixibuc, pour résumer, et de préciser: "nous n'avons jamais à échapper à une seule barre oblique, seulement un </ ?". Correct.
Vous n'avez pas besoin d'échapper à / dans un JavaScript chaîne, juste \, parce que si vous ne le faites pas, alors la chaîne yes\no par inadvertance être transformé en yes<newline>o. S'échapper de la \ permettra d'éviter que.
Aussi, si vous n'échapperez pas au & dans une URL, puis tout ce qui vient après, il sera considéré comme un nouveau paramètre. Par exemple, a=Q&A signifie "le paramètre a a la valeur "Q" et il y a aussi un paramètre A" au lieu de "le paramètre a a la valeur "Q&A"". La manière correcte de s'en échapper, ce serait a=Q%26A.
Pourquoi voudriez-vous écrire yes\no pour l'invite? vous n'auriez probablement pas, c'est le meilleur exemple de l'utilisation non je pouvais venir. Les noms de fichiers Windows?
La barre oblique est nécessaire pour empêcher les navigateurs, en particulier les plus âgés, à tort, interpréter la barre oblique comme une clôture marqueur JavaScript.
Dans un document HTML 4, la séquence
</
à l'intérieur d'un élément défini comme contenant CDATA (comme le script) est une balise de fin, et ce sera la fin de l'élément (avec une erreur si elle n'est pas</script>
.Autant que le JS est concerné
/
et\/
sont identiques à l'intérieur d'une chaîne. Aussi loin que le HTML est concerné</
commence une balise de fin, mais<\/
ne pas.XHTML n'est pas un moyen de spécifier qu'un élément intrinsèquement contient CDATA, de sorte que vous devez explicitement poignée de personnages qui auraient une signification particulière (
<
,&
, etc). Emballage le contenu de l'élément avec CDATA marqueurs est la façon la plus simple pour atteindre cet objectif.En d'autres termes, XHTML quand devons-nous échapper à une barre oblique?
En "normal" XHTML (que personne n'utilise), jamais. En HTML-XHTML compatible (dont tout le monde qui veut IE 8 et plus bas pour être pris en charge utilise), les mêmes endroits que dans le HTML.
Donc, @rubixibuc, pour résumer, et de préciser: "nous n'avons jamais à échapper à une seule barre oblique, seulement un </ ?". Correct.
OriginalL'auteur Quentin
Vous n'avez pas besoin d'échapper à
/
dans un JavaScript chaîne, juste\
, parce que si vous ne le faites pas, alors la chaîneyes\no
par inadvertance être transformé enyes<newline>o
. S'échapper de la\
permettra d'éviter que.Aussi, si vous n'échapperez pas au
&
dans une URL, puis tout ce qui vient après, il sera considéré comme un nouveau paramètre. Par exemple,a=Q&A
signifie "le paramètrea
a la valeur "Q
" et il y a aussi un paramètreA
" au lieu de "le paramètrea
a la valeur "Q&A
"". La manière correcte de s'en échapper, ce seraita=Q%26A
.yes\no
pour l'invite?vous n'auriez probablement pas, c'est le meilleur exemple de l'utilisation non je pouvais venir.
Les noms de fichiers Windows?
OriginalL'auteur rid
La barre oblique est nécessaire pour empêcher les navigateurs, en particulier les plus âgés, à tort, interpréter la barre oblique comme une clôture marqueur JavaScript.
OriginalL'auteur densho