Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Pomocy w poprawieniu skryptu cookies info
Forum PHP.pl > Forum > Przedszkole
fate
http://webhelp.pl/artykuly/okienko-z-infor...czkach-cookies/

Skrypt działa "jak należy" Zmodyfikowałem wygasalnosc ciasteczka oraz dodałem nieudolnie auto zamykanie sie okienka po czasie

  1. function WHCreateCookie(name, value) {
  2. var date = new Date();
  3. date.setTime(date.getTime() + (365*24*60*60*1000));
  4. var expires = "; expires=" + date.toGMTString();
  5. document.cookie = name+"="+value+expires+"; path=/";
  6. }
  7. function WHReadCookie(name) {
  8. var nameEQ = name + "=";
  9. var ca = document.cookie.split(';');
  10. for(var i=0; i < ca.length; i++) {
  11. var c = ca[i];
  12. while (c.charAt(0) == ' ') c = c.substring(1, c.length);
  13. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  14. }
  15. return null;
  16. }
  17. window.onload = WHCheckCookies;
  18. function WHCheckCookies() {
  19. if(WHReadCookie('NAOQ_cookies_accepted') != 'T') {
  20. var message_container = document.createElement('div');
  21. message_container.id = 'cookies-message-container';
  22. var html_code = '<div id="cookies-message">Ciasteczka <a href="java script:WHCloseCookiesWindow();" id="accept-cookies-checkbox" name="accept-cookies">Zaakceptuj</a></div>';
  23. message_container.innerHTML = html_code;
  24. document.body.appendChild(message_container);
  25. }
  26. }
  27. function WHCloseCookiesWindow() {
  28. WHCreateCookie('NAOQ_cookies_accepted', 'T');
  29. document.getElementById('cookies-message-container').removeChild(document.getElementById('cookies-message'));
  30. }
  31. function closetimeout() {
  32. document.getElementById('cookies-message-container').removeChild(document.getElementById('cookies-message'));
  33. }
  34. window.setTimeout("closetimeout()",10000);


Tak jak wspominalem działa OK alepo raz 1 grzebiac przy czyms innym zajrzalem do konsoli błedów i wywala mi przy tylko przy tym 1 skrypcie:
TypeError: document.getElementById(...) is null
wiersz 32

Przez ta moja modyfikacje pewnie robiona metoda prób i błędów,
podreperuje ktoś?

Blad wyskakuje jezeli ciasteczko jest zaakceptowane po 10 sekundach - pewnie dlatego ze okienko wtedy wcale sie nie pokazuje, pewnie trzeba dac jakis prosty warunek ale ja nie znam za bardzo nawet skladni JS choc wlasnie przy okazji takiej jak ta naucze sie mimochodem
Dzieki
ziqzaq
Skoro próbujesz się odwołać do elementu na stronie i otrzymujesz komunikat "TypeError: document.getElementById(...) is null" to sprawdź czy element, na którym chcesz operować istnieje (jest różny od "null").
Jak masz taki problem to pierwszym krokiem jest dokumentacja: getElementById()

Mały przykład dla ciebie:
[JAVASCRIPT] pobierz, plaintext
  1. var elementA = document.getElementById("id-elementu-a");
  2. if (elementA !== null) {
  3. // element istnieje; teraz możemy działać
  4. }
[JAVASCRIPT] pobierz, plaintext
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.