Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

204
Visualizações
¿Error de cotización de HTML/JavaScript en todos los principales navegadores?

Suponga que desea mostrar una alerta con el contenido de cadena de <!-- Comment --> <script type="text/javascript"></script> en JavaScript en una página HTML. Puedes hacerlo con el siguiente código:

 <!DOCTYPE html> <html> <head> <title>Quoting</title> </head> <body> <script type="text/javascript"> alert('<!-- Comment --> <script type="text/javascript"></script\u003E'); </script> </body> </html>

Nótese aquí el carácter > citado en la parte </script> del texto. Esto utiliza un escape Unicode de JavaScript para evitar que el analizador HTML interprete esta parte del literal de la cadena como el final de la etiqueta del script. El código anterior funciona perfectamente en FF, Chrome, IE.

Ahora intente aplicar las comillas > también al final del comentario dentro de la cadena literal. Esto no debería cambiar nada, porque la sintaxis de comentarios XML no debe interpretarse dentro de las etiquetas de script en HTML (y obviamente no se interpreta, porque la sintaxis de comentarios se mostró en la alerta):

 <!DOCTYPE html> <html> <head> <title>Quoting</title> </head> <body> <script type="text/javascript"> alert('<!-- Comment --\u003E <script type="text/javascript"></script\u003E'); </script> </body> </html>

Curiosamente, este código se rompe: la alerta no se imprime cuando se carga la página. El problema se puede reproducir al menos en FF, Chrome e IE. ¿Me estoy perdiendo algo en las especificaciones, o es un error "independiente del navegador" en el analizador HTML de todos los principales navegadores?

El inspector DOM muestra lo siguiente:

ingrese la descripción de la imagen aquí

Parece que el resto del documento se interpreta como parte del script en este caso.

¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto no es un error.

El primer < pone el analizador en datos de Script con un estado de signo menor que el ! lo pone en estado de inicio de escape de datos de secuencia de comandos y así sucesivamente.

Reemplazar el > que terminó el comentario HTML con una secuencia de escape significa que no sale del estado "lidiando con un comentario" hasta que llega al final del documento HTML.


Es un artefacto histórico del código HTML inicial utilizado para permitir scripts en línea sin que el código fuente de JS apareciera en la página para navegadores que no admitían el elemento <script> .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda