Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Pomocy w poprawieniu skryptu cookies info, document.getElementById(...) is null
fate
post
Post #1





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował fate 12.08.2013, 08:58:29


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
ziqzaq
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:19