Pergunta

Meu projeto conta com JavaScript para exibir dinamicamente o conteúdo em um clique de hiperlink. Para torná -lo degradado de forma limpa sem o JavaScript ativado, estou simplesmente mostrando todo o conteúdo da página e usando hiperlinks e âncoras para conectar as peças.

Estou confiando no jQuery para identificar o clique do hiperlink por ID; portanto, sem JavaScript, preciso adicionar a âncora.

Este é um bom uso do Noscript? Principalmente, isso sempre adicionará o hiperlink sem JavaScript?

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

Solução

Os elementos contêm outros elementos, não apenas tags. A tag de início e a etiqueta final devem estar no contêiner. UMA validador teria pegado isso.

Você não deveria estar usando o Noscript para isso em primeiro lugar. Algo mais parecido com:

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

com

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

});

... é provavelmente o caminho a seguir.

Outras dicas

Em muitos navegadores, isso funcionará, mas eu não recomendaria. Ele quebra completamente a estrutura do HTML e não é garantido que funcione em todos os navegadores ou mesmo versões futuras dos navegadores em que funciona agora.

Na verdade, você não precisa de Noscript aqui. Coloque o destino âncora nos hiperlinks por padrão e na função JQuery ou JavaScript, termine com um return false ou event.preventDefault();. Isso impedirá que o link seja seguido se o JavaScript estiver ativado e resultará em uma âncora seguida se estiver desativada. Você é coberto nos dois sentidos com o mínimo de sobrecarga.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top