2010-11-18 13 views
5

Mój projekt polega na JavaScriptu, aby dynamicznie wyświetlać treści na kliknięciu hiperłącza. Aby sprawić, że będzie czysto degradować bez włączonego JavaScriptu, po prostu pokazuję całą treść strony i korzystam z hiperłączy i kotwic do łączenia elementów.noscript do filtrowania dodawanych linków - Wyczyść JavaScript pogarsza się

Opieram się na jQuery, aby zidentyfikować kliknięcie hiperłącza przez ID, więc bez JavaScript muszę dodać kotwicę.

Czy to dobre wykorzystanie nosków? Głównie, czy to zawsze doda link bez JavaScript?

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

Odpowiedz

5

Elementy zawierać inne elementy, a nie tylko tagi. Tag początkowy i końcowy muszą znajdować się w kontenerze. A validator wybrałby to.

Najpierw jednak nie powinieneś używać noscript. Coś więcej wzdłuż linii:

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

z

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

}); 

... to chyba droga.

0

W wielu przeglądarkach to zadziała, ale nie polecam go. Całkowicie łamie strukturę HTML i nie gwarantuje, że działa we wszystkich przeglądarkach, a nawet w przyszłych wersjach przeglądarek, w których teraz działa.

0

Właściwie nie potrzebujesz tutaj nigdzie. Domyślnie umieść cel zakotwiczenia w hiperlinkach, a w funkcji jQuery lub javascript kliknij na return false lub event.preventDefault();. Zapobiegnie to podążaniu za odnośnikiem, jeśli włączona jest obsługa JavaScript, i spowoduje, że zostanie ona zakotwiczona, jeśli jest wyłączona. Obejmujesz oba sposoby przy minimalnym obciążeniu.