Para que se usa & amp

107

¿Hay alguna diferencia en el comportamiento de la siguiente URL?

No sé por qué &está insertado, ¿hay alguna diferencia?

www.testurl.com/test?param1=test&current=true

versus

www.testurl.com/test?param1=test&current=true
cielo azul
fuente
1
Relacionado: ¿Realmente necesito codificar como amplificador?
Charles Sprayberry
1
¿Puedes dar un contexto? ¿Es esto en una acción de forma? ¿Solo se muestra en una página?
jprofitt
@ user470184 No voté negativamente, pero lo consideré. Ya hay un montón de información sobre SO sobre este tema.
Charles Sprayberry
El "comportamiento genérico" sigue siendo bastante vago. ¿Te preguntas sobre algo como <p>www.testurl.com/test?param1=test&amp;current=true</p>o <a href="www.testurl.com/test?param1=test&amp;current=true">linky</a>?
jprofitt
@ jprofitt <a href="www.testurl.com/test?param1=test&current=true"> linky </a>
blue-sky

Respuestas:

126

& es HTML para "Inicio de una referencia de carácter".

&amp; es la referencia de carácter para "Un ampersand".

&current; no es una referencia de carácter estándar y también lo es un error (los navegadores pueden intentar realizar la recuperación de errores, pero no debe depender de esto).

Si utilizó una referencia de carácter para un carácter real (por ejemplo &trade;), entonces (™) aparecería en la URL en lugar de la cadena que deseaba.

(Tenga en cuenta que, según la versión de HTML que utilice, es posible que deba terminar una referencia de carácter con a ;, por &trade=lo que se tratará como ™. HTML 4 permite que se omita si el siguiente carácter es un carácter que no es una palabra ( como =) pero algunos navegadores (Hello Internet Explorer) tienen problemas con esto).

Quentin
fuente
5

Mi fuente: http://htmlhelp.com/tools/validator/problems.html#amp

Otro error común ocurre cuando se incluye una URL que contiene un ampersand ("&"):

Esto no es válido:

a href = "foo.cgi? Chapter = 1 & section = 2 & copy = 3 & lang = es"

Explicación:

Este ejemplo genera un error para la "sección de entidad desconocida" porque "&"se supone que comienza una referencia de entidad. Los navegadores a menudo se recuperan de forma segura de este tipo de error, pero en algunos casos ocurren problemas reales. En este ejemplo, muchos navegadores convierten correctamente & copy = 3 en © = 3, lo que puede provocar que el enlace falle. Dado que ⟨es la entidad HTML para el corchete angular que apunta a la izquierda, algunos navegadores también convierten & lang = en 〈= en. Y un navegador antiguo incluso encuentra la entidad §, convirtiendo & section = 2 en §ion = 2.

Entonces, el objetivo aquí es evitar problemas cuando intentas validar tu sitio web. Por lo tanto, debería reemplazar sus símbolos y símbolos &amp;cuando escriba una URL en su marcado.

Tenga en cuenta que reemplazar &con &amp; solo se realiza al escribir la URL en HTML, donde "&"hay un carácter especial (junto con "<" y ">"). Al escribir la misma URL en un mensaje de correo electrónico de texto sin formato o en la barra de ubicación de su navegador, usaría "&"y no "&amp;". Con HTML, el navegador se traduce como "&amp;"para "&"que el servidor web solo vea "&" y no "&amp;"en la cadena de consulta de la solicitud.

Espero que esto ayude : )

Jim
fuente
-2

si estás haciendo una cadena de caracteres. hacer:

let linkGoogle = 'https://www.google.com/maps/dir/?api=1'; 
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];


aNav.href = linkGoogle + origin;
Urbanek Krzysztof
fuente
1
La pregunta se trata &ampde HTML, no &de URL.
Quentin