2010-11-18 10 views
5

Mi proyecto depende de JavaScript para mostrar dinámicamente el contenido en un clic de hipervínculo. Para hacerlo degradar limpiamente sin JavaScript habilitado, simplemente estoy mostrando todo el contenido de la página y usando hipervínculos y anclajes para conectar las piezas.noscript para filtrar agregar hipervínculos - Limpiar degradación de JavaScript

Confío en jQuery para identificar el clic del hipervínculo por ID, por lo que sin JavaScript necesito agregar el delimitador.

¿Es este un buen uso de noscript? Principalmente, ¿esto siempre agregará el hipervínculo sin JavaScript?

<div id="link1"> 
    <noscript><a href="#link1content"></noscript> 
    1. Link Name Here 
    <noscript></a></noscript> 
</div> 

Respuesta

5

elementos contienen otros elementos , no sólo las etiquetas. La etiqueta de inicio y la etiqueta final deben estar en el contenedor. Un validator habría recogido esto.

Sin embargo, no debe utilizar noscript para esto en primer lugar. Algo más en la línea de:

<a class="enhanced_in_some_way" href="#link1content">1. Link Name Here</a> 

con

jQuery('a.enhanced_in_some_way').click(function (event) { 
    var link = this; 
    var name = /#([^#]+$)/.exec(link.href); 
    do_something_with(name); 
    event.preventDefault(); 

}); 

... es probablemente el camino a seguir.

0

En muchos navegadores, esto funcionará, pero yo no lo recomendaría. Rompe por completo la estructura del HTML y no se garantiza que funcione en todos los navegadores o incluso versiones futuras de los navegadores en los que funciona ahora.

0

En realidad, no necesita Noscript aquí. Coloque el destino de anclaje en los hipervínculos de forma predeterminada, y en su jQuery o función de clic de JavaScript, termine con un return false o event.preventDefault();. Esto evitará que se siga el enlace si JavaScript está habilitado, y da como resultado un ancla seguida si está deshabilitada. Estás cubierto en ambos sentidos con una sobrecarga mínima.

Cuestiones relacionadas