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:
getlink.href;getlin['href'];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
Komentarze
Możesz zostawić komentarz lub wysłać sygnał trackback ze swojej strony.
Zanim dodasz komentarz, to zapoznaj się z zasadami dotyczącymi komentarzy.