2012-01-17 14 views
7

¿El siguiente HTML/Javascript es válido (estricto) cuando Javascript está habilitado? ¿Se ha ignorado la identificación en la etiqueta de noscipt?ID duplicado dentro de noscript

<body> 
    <noscript> 
     <div id="test"></div> 
    </noscript> 
    <script type="text/Javascript"> 
     var el = document.createElement('span'); 
     el.id = 'test'; 
     document.body.appendChild(el); 
    </script> 
</body> 

Respuesta

10

Cuando esté activado Javascript, el contenido de <noscript> es raw text, no el contenido del elemento, por lo que el hijo del elemento <noscript> es un nodo de texto con el valor "\n <div id="test"></div>\n" en lugar de un elemento DIV. Un getElementById("test") no encontrará un <div> con el ID "test" porque no hay tal elemento, solo un nodo de texto cuyo contenido analizaría un DIV si aparecía fuera de un contexto de texto sin formato.

http://www.w3.org/TR/html5/scripting-1.html#the-noscript-element

Fuera de elementos del cabezal, si se habilita secuencias de comandos para el elemento noscript
noscript El elemento debe contener solamente el texto ...

+0

Gracias Mike, voy a aceptar este responde cuando pueda. – Paulpro

+0

@ user1, De nada. Feliz codificación. –