Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] (Greasemonkey) edytowanie kodu Java Script
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Spanish Inquisitor
Wstęp którego nie musisz czytać:
Dość niedawno odkrylem addon do Firefox'a - Greasemonkey i jego niesamowite możliwości, sporo przydatnych skryptów już sobie w nim zaimplementowałem i ostatnio wpadłem na pomysł, żeby zrobić coś specjalnie dla siebie, coś co ulepszy stronę z której często korzystam. Niestety moja znajomość programowania jest niewiele ponad podstawowa (html i początki innych języków są proste, problem się robi później ;p), a Java Script wykorzystywany w addonie jest dość specyficzny, wkońcu musimy za jego pomocą edytować coś co już istnieje na różne sposoby. Szukałem już rozwiązania w internecie i próbowałem wyhaczyć rozwiązania mojego problemu w istniejących skryptach, ale niemogłem trafić na to czego szukałem.

Właściwy problem:

Na stronie w jej źródle znajduje się kod Java Script który chciałbym zedytować, mianowicie w jego konkretne miejsce (w funkcje) chciałbym dodać fragment skryptu. Pytanie czy da się tak zrobić, a jeśli tak to jak, za pomocą jakiej funkcji? Wiem jedynie jak można dodawać kod do strony używając getElementsByClassName()[], Id, Name, ale to się ogranicza do modyfikowania html i niemam pojęcia jak dodać coś do fragmentu Java Script.
wszerad
Dość trudne pytanie bo takich rzeczy na ogół się nie robi.
Jeden sposób to document.getElementsByTagName('script'), i wklejasz zawartość używając innerHTML. Będziesz musiał najpierw pobrać oryginalną zawartość, podzielić ją na dwie części i w podanym miejscu wkleić swoją zmianę.
Drugi sposób to nadpisanie funkcji poprzez deklaracje tak samo się nazywającej.
Trzeci i na pewno sprawdzony to zastąpienie eventu (najprawdopodobniej kod jaki chcesz zmienić wywołuje się po jakiejś interakcji).

Na dwa pierwsze sposoby nie daje głowy, jak dla mnie nie powinny działać z prostego powodu: przeglądarka do optymalizacji JS powinna go pobierać i być nieczuła na wszelkie zmiany bo praktyka podmieniania kodu JS jest związana jedynie ze światem przestępczym i nie powinna być możliwa. Ostatnia metoda jest na pewno skuteczna
Spanish Inquisitor
Dzięki za pomoc, poprzez nadpisanie pojedynczej funkcji moge biorąc istniejącą funkcje dodać do niej 2 linijki i włączyć ją jako nową ulepszoną, wyświetlającą szczegułową informacje którą chciałęm uzyskać ;D

Jak widać brnołem w nieco złym kierunku a rozwiązanie było tuż pod nosem haha.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.