Stack overflow at line 0, javascript i getAttribute href błąd

| kategoria: Programowanie | Komentarze (0)

Jeśli pojawia Ci się błąd stack overflow at line 0 w Internet Explorer 6,7, a programujesz, to na 99% jest to wina niepoprawnego kodu JavaScript. Przyczyną tego w naszych źródłach była niepoprawnie zwracana wartość href metodą getAttribute('href') przez Internet Explorer w określonej dużej pętli.

Ogólnie rzecz biorąc, aby pobrać wartość atrybutu href, można użyć trzech sposobów:

  1. getlink.href;
  2. getlin['href'];
  3. getlink.getAttribute('href');

W niektórych przeglądarkach getAttribute('href') na elemencie zwraca pełny adres URL, nawet jeśli atrybut href zawiera ścieżkę względną, a w innych dokładnie to, co zawiera href (np. tylko ścieżkę względną). W zestawieniu wygląda to tak:

Absolutny URL Wartość z atrybutu href
IE getlink.href; x
IE getlink.getAttribute('href'); x
IE getlink.getAttribute('href',2); x
Gecko getlink.href; x
Gecko getlink.getAttribute('href'); x
Gecko getlink.getAttribute('href',2); x
Opera getlink.href; x
Opera getlink.getAttribute('href'); x
Opera getlink.getAttribute('href',2); x

Firma Microsoft dołożyła wszelkich starań w celu rozwiązania tego poprzez dodanie drugiego parametru do metody getAttribute. Drugi parametr może być ustawiony na 0,1 lub 2. Jeżeli parametr jest ustawiony na 2, to metoda zwraca atrybut tekstu. Wszelkie inne ustawienia zwrócą bezwzględny adres URL.

Prawidłowo getAttribute('href') powinno zwracać wartość, a nie cały absolutny URL.

Warto zajrzeć jeszcze

Nie podoba mi sięPodoba mi się (Nie ma jeszcze głosów, ale możesz być pierwszy)

Komentarze

Możesz zostawić komentarz lub wysłać sygnał trackback ze swojej strony.

Zanim dodasz komentarz, to zapoznaj się z zasadami dotyczącymi komentarzy.

Dodaj komentarz
Zaznacz, jeśli potwierdzasz wysłanie komentarza

Polecamy

Znajdź na stronie

Pomoc do strony

Bądź na bieżąco

do góry