Você pode dar um contexto? É uma ação de formulário? Apenas exibido em uma página?
jprofitt
@ user470184 Não fiz votos negativos, mas considerei. Já existe uma tonelada de informações no SO sobre esse assunto.
Charles Sprayberry
O "comportamento genérico" ainda é muito vago. Você está se perguntando sobre algo como <p>www.testurl.com/test?param1=test&current=true</p>ou <a href="www.testurl.com/test?param1=test&current=true">linky</a>?
jprofitt
@ jprofitt <a href="www.testurl.com/test?param1=test¤t=true"> linky </a>
blue-sky
Respostas:
126
& é HTML para "Início de uma referência de caractere".
& é a referência de caractere para "Um e comercial".
¤t; não é uma referência de caractere padrão e, portanto, é um erro (os navegadores podem tentar realizar a recuperação de erros, mas você não deve depender disso).
Se você usou uma referência de caractere para um caractere real (por exemplo ™), então (™) apareceria na URL em vez da string desejada.
(Observe que dependendo da versão de HTML que você usa, pode ser necessário terminar uma referência de caractere com um ;, que é o motivo pelo qual &trade=será tratado como ™. O HTML 4 permite que seja omitido se o próximo caractere for um caractere não-word ( como =), mas alguns navegadores (Hello Internet Explorer) têm problemas com isso).
Portanto, o objetivo aqui é evitar problemas ao tentar validar seu site. Portanto, você deve substituir seus "e" comerciais por &ao escrever um URL em sua marcação.
Observe que substituir &por & só é feito ao escrever a URL em HTML, onde "&"é um caractere especial (junto com "<" e ">"). Ao escrever a mesma URL em uma mensagem de e-mail de texto simples ou na barra de localização do seu navegador, você usaria "&"ou não "&". Com HTML, o navegador é traduzido "&"para de "&"forma que o servidor Web veja apenas, "&"
e não "&"na string de consulta da solicitação.
Esse é um ótimo exemplo. Quando ¤té analisado em um nó de texto para o qual é convertido ¤t. Quando analisado em um valor de atributo , ele é analisado como ¤t.
Se você quiser ¤tum nó de texto, deve escrever &currentem sua marcação.
<p>www.testurl.com/test?param1=test&current=true</p>
ou<a href="www.testurl.com/test?param1=test&current=true">linky</a>
?Respostas:
&
é HTML para "Início de uma referência de caractere".&
é a referência de caractere para "Um e comercial".¤t;
não é uma referência de caractere padrão e, portanto, é um erro (os navegadores podem tentar realizar a recuperação de erros, mas você não deve depender disso).Se você usou uma referência de caractere para um caractere real (por exemplo
™
), então (™) apareceria na URL em vez da string desejada.(Observe que dependendo da versão de HTML que você usa, pode ser necessário terminar uma referência de caractere com um
;
, que é o motivo pelo qual&trade=
será tratado como ™. O HTML 4 permite que seja omitido se o próximo caractere for um caractere não-word ( como=
), mas alguns navegadores (Hello Internet Explorer) têm problemas com isso).fonte
HTML não reconhece o,
&
mas reconhecerá&
porque é igual a&
em HTMLEu li esta postagem que alguém fez: http://www.webmasterworld.com/forum21/8851.htm
fonte
Minha fonte: http://htmlhelp.com/tools/validator/problems.html#amp
Isto é inválido:
Explicação:
Portanto, o objetivo aqui é evitar problemas ao tentar validar seu site. Portanto, você deve substituir seus "e" comerciais por
&
ao escrever um URL em sua marcação.Espero que isto ajude : )
fonte
Esse é um ótimo exemplo. Quando
¤t
é analisado em um nó de texto para o qual é convertido¤t
. Quando analisado em um valor de atributo , ele é analisado como¤t
.Se você quiser
¤t
um nó de texto, deve escrever&current
em sua marcação.Os detalhes sangrentos estão aqui: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
fonte
se você estiver fazendo uma seqüência de caracteres. faço:
fonte
&
em HTML, não&
em URLs.