Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript]Fallback przy braku js, jak zrobić
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
jquery_man
Witam, chciałbym się dowiedzieć w jaki sposób ratujecie się z sytuacji gdy użytkownik nie ma javascripta i jaka metoda jest najlepsza. Załóżmy, że mamy formularz na stronie:
  1. //nieistotne
  2. </head>
  3. <div>
  4. <p>jakaś treść</p>
  5. <div id="form">
  6. <form>
  7. //jakiś tam formularz
  8. </form>
  9. </div>
  10. </div>
  11.  
  12. </body>
  13. </html>


i chcemy aby przy włączonym js nie był widoczny (tylko np. pokazywał się po kliknięciu jakiegoś przycisku, który też się pokaże dopiero gdy nie ma js).

Ja widzę kilka rozwiązań, ale nie jestem pewien które jest najlepsze i najbardziej zgodne ze standardami

1. Użycie noscript
  1. //nieistotne
  2. </head>
  3. <noscript><div id="no-js"></noscript>
  4. <div>
  5. <p>jakaś treść</p>
  6. <div id="form">
  7. <form>
  8. //jakiś tam formularz
  9. </form>
  10. </div>
  11. </div>
  12. <noscrip></div></noscript>
  13. </body>
  14. </html>

i ostylowanie elementów aby były widoczne kiedy są w id no-js
2. Rozwiązanie
  1. //nieistotne
  2. </head>
  3. <div>
  4. <p>jakaś treść</p>
  5. <div id="form">
  6. <form>
  7. //jakiś tam formularz
  8. </form>
  9. </div>
  10. </div>
  11. $('html').attr('id','js');
  12. </body>
  13. </html>

i ukrycie elementów gdy jest w id js nieco wadliwe gdy się strona wolniej uruchomi i dopiero po chwili formularz zniknie

Są jakieś inne sensowne metody? Która metoda lepsza?
lukesh
A są jeszcze tacy ludzie, którzy nie korzystają z JS? Ja już dawno zrezygnowałem z rozbudowanego PHP na rzecz JS, ponieważ znacznie to odciąża serwer, a często może poprawić działanie samej strony www / aplikacji on-line. Myślę, że wyłączona obsługa JS i sposoby, jak sobie z tym fantem radzić, to historia z minionej epoki, kiedy królował html 4.01 i tabelki.
wNogachSpisz
  1. #form {
  2. display: none
  3. }
  4. </style>
kamil4u
Osobiście zastosowałbym( rzadko kiedy robię strony dla użytkowników bez JS ) rozwiązanie podobnego do ~wNogachSpisz.

W zależności od sytuacji:
- albo bym wprost skorzystał z metody podanej przez ~wNogachSpisz
- albo od razu bym ukrył element( w pliku CSS ), a dopiero po załadowaniu DOM, przez JS pokazał formularz.

Wszystko zależy jak ważny jest dany element na stronie i do czego służy.

W ogóle dobą metodą jest zrobienie strony dla użytkowników bez JS, a dopiero po załadowaniu DOM wszystko odpowiednio pozamieniać za pomocą JS. Czasami nawet tworząc od nowa całe elementy, a nie tylko je odkrywać. Ale to zależy często od konkretnej sytuacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.