Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Anonymous pisze:Zatem mam
- Kod: Zaznacz cały
var doc = getBrowser().selectedBrowser.contentDocument;
doc.addEventListener('click', mojaFunkcja, true);
function mojaFunkcja(event)
{
if (event.target.id == 'box')
alert("xxx");
}
I nie działa :F
BTW, celowo uprościłem na gBrowser.contentDocument, bo to to samo krócej. Niepotrzebnie przywróciłeś starą wersję.
Mówiłeś, że sam pracowałeś na takiej rzeczy często...
Masz może swoje gotowe rozszerzenie, gdzie to wykorzystałeś ?
To podrzuć, i najlepiej odrazu funkcję do tego, to zobacze jak powinno być, ale jest tak jak wsio pisałeś.
Nie używałem tego dokładnie w takiej samej sytuacji, więc i tak nie będziesz mógł tego skopiować słowo w słowo. A najlepsze możliwe przybliżenie już Tobie podałem.
Zresztą to rozszerzenie to kilka tysięcy linii kodu, więc zanim się w tym połapiesz...
Dostaje alert'a tylko wtedy, gdy doc.addEventListener zmienie na window.add..., ale event.target.id jest zawsze content, nigdy box...
W takim razie już wiem, o co chodzi. Dodajesz tego eventListenera w momencie startu aplikacji (a dokładniej, otwarcia danego okna), a więc dodajesz go do ówczesnego dokumentu. Tymczasem po załadowaniu twoje strony dokument się zmienia i stary listener już nie istnieje. Musisz dodać listenera dopiero po załadowaniu strony.
Myślałem, że o to sam już zadbasz, dlatego wcześniej o tym nie wspomniałem. :)