MozillaPL.org - polskie centrum Mozilli

Główne menu:

Podmiana treści

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Podmiana treści

Postautor: Zepco » 23 czerwca 2007, 17:37

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20061201 Firefox/2.0.0.4 (Ubuntu-feisty)

Chciałem zrobić wtyczkę, która na jednej ze stron robiłaby małe tłumaczenie.

Robię tak, że pobieram zawartość za pomocą

d = doc.body.innerHTML;

Później za pomocą replace zmieniam interesującą mnie zawartość i po całej obróbce wrzucam całą zawartość spowrotem

doc.body.innerHTML = d;

I teraz mam pytanie czy ta zawartość jest w jakiś sposób ponownie parsowana, bo jest tak, że np. nie działa wysyłanie formularzy albo nie pokazują się dymki z podpowiedziami i nie wiem dlaczego tak się dzieje. Np skrypty js działają tak jak trzeba. Jest jakaś inna metoda podmiany zawartości, żeby nie było takich kwiatków?
Całość działa na zdarzenie DOMContentLoaded.

P.S. Dymki wyświetlane są na zdarzenie onmouseover.
W ogóle zastanawiam się jak to jest rozwiązane w adblockplus, że nie widać momentu blokowania elementu (reklamy) tylko jest wyświetlana strona bez niej.
Zepco
 
Posty: 27
Z nami od: 27 lutego 2005, 22:09
Lokalizacja: Kielce

Postautor: helios » 24 czerwca 2007, 20:22

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.8.1.4) Gecko/20060601 Firefox/2.0.0.4 (Ubuntu-edgy)

Nie pisałem nigdy żadnej wtyczki, ale znam trochę JS. Wydaje mi się, że powinieneś używać metod DOM, a nie innerHTML. Te funkcje to np. createElement, appendChild - będzie Ci łatwiej szukać.

PS Nie wiem, jak działa AP, ale zawsze możesz obejrzeć sobie jego źródła. :)
helios
 
Posty: 217
Z nami od: 10 sierpnia 2005, 18:15
Lokalizacja: Gdańsk

Postautor: Zepco » 24 czerwca 2007, 21:17

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20061201 Firefox/2.0.0.4 (Ubuntu-feisty)

helios pisze:Nie pisałem nigdy żadnej wtyczki, ale znam trochę JS. Wydaje mi się, że powinieneś używać metod DOM, a nie innerHTML. Te funkcje to np. createElement, appendChild - będzie Ci łatwiej szukać.

PS Nie wiem, jak działa AP, ale zawsze możesz obejrzeć sobie jego źródła. :)


Chyba tak będę musiał zrobić, ale przeszukiwanie wszystkich gałęzi i każdego elementu z osobna będzie trochę uciążliwe. Mimo wszystko nie załatwia to problemu, bo treść którą chcę zastąpić będzie przez moment widoczna zanim skrypt ją zmieni.
Zepco
 
Posty: 27
Z nami od: 27 lutego 2005, 22:09
Lokalizacja: Kielce


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Bing [Bot], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: