Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Greasemonkey + Jquery?
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Mam pytanie, czy może ktoś zna sposób w jaki mógł bym korzystać z Jquery w grasemonkey?

Znalazłem coś takiego:
  1. // Add jQuery
  2. var GM_JQ = document.createElement('script');
  3. GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
  4. GM_JQ.type = 'text/javascript';
  5. document.getElementsByTagName('head')[0].appendChild(GM_JQ);
  6.  
  7. // Check if jQuery's loaded
  8. function GM_wait() {
  9. if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); }
  10. else { $ = unsafeWindow.jQuery; letsJQuery(); }
  11. }
  12. GM_wait();
  13.  
  14. // All your GM code must be inside this function
  15. function letsJQuery() {
  16. alert($); // check if the dollar (jquery) function works
  17.  
  18. }


TYlko nie wiem czemu cały czas wyskakuje alert o zmiennej treści jak by z częściami jakiejś funkcji...

Ten post edytował ShadowD 22.11.2009, 16:37:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Rozumiem że chodzi o cache...

A więc, klikam na nowy skrypt, wybieram strony na jakich ma być uruchomiony (*) i klikam OK.
Edycja pliku i dodaje require i krótki wręcz banalny kod, a oto rezultat:

[HTML] pobierz, plaintext
  1. // ==UserScript==
  2. // @name test
  3. // @namespace D:\Firefox\gm\qwdad.js
  4. // @include *
  5. // @require <a href="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" target="_blank">http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js</a>
  6. // ==/UserScript==
  7. {:content:}#x28;document).ready(function()
  8. {
  9. alert('Hello world!');
  10. });
[HTML] pobierz, plaintext

Nie działa, pisząc samego alerta, bez redy() działa, wniosek ->> jquery nie działa...

Bogatszy o nowe doświadczenia próbuję z wersją lokalną. Najpierw wklejam pliki w katalog gm w katalogu ff i dla pewności, a raczej szczerze wiedzę, że powinienem go wkleić do katalogu coś jak: ~Firefox\Profiles\...\gm_scripts\ gdzie również wendruje kopia plików. Konfiguracja od początku (takla sama) plus zmiana w require na nazwę pliku, próbowałem /nazwa.roz jak i bez /.

Wynik jak zwykle. Próba poszukania czegoś w sieci (raz kolejny), znalazłem masę plików niby działających kopiowałem je i sprawdzałem wszystko kończyło się tak jak zawsze. ;\

Nie wiem co robię nie tak, jak zauważyłeś lub i nie staram się jakoś rozwiązać ten problem jednak mi nie idzie, prosił bym o kolejną naprowadzenie na właściwą drogę... ;]

EDIT:
Da się doładować 2 pliki do jednego skryptu?

Ten post edytował ShadowD 6.12.2009, 20:59:25
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(ShadowD @ 6.12.2009, 20:33:22 ) *
Rozumiem że chodzi o cache...
nie zupełnie o cache - odinstaluj wszystkie skrypty tego typu - kliknij "usuń" - wyłącz potem mozille i włącz....

Cytat(ShadowD @ 6.12.2009, 20:33:22 ) *
A więc, klikam na nowy skrypt, wybieram strony na jakich ma być uruchomiony (*) i klikam OK.
Edycja pliku i dodaje require i krótki wręcz banalny kod...


właśnie o tym w jednym z postów pisałem, że zapewne tak robisz - a jak pisze przy require w manualu dodatkowy skrypt instaluje się/ściąga się tylko raz przy instalacji skryptu

nie wiem na ile znasz angielski na dokumentacje (nie wiem czemu ale takie teksty i jak ktoś mówi to rozumiem dosyć dobrze - dużo gożej jakbym ja miał mówić - prawie ni w zą(IMG:style_emoticons/default/cool.gif) - ale w manualu o namespace też trochu inaczej pisze - podaje się adres internetowy tego skryptu czy to localhst - nie wiem czy można tak jak u Ciebie w kodzie ;p...


najlepiej zrób tak - tak jak pisałem odinstaluj te skrypty co tam masz niepotrzebne i o podobnych próbach (mogą wchodzić w konflikty)... zapisz na dysku plik o takiej nazwie JAKAS_NAZWA.user.js a jego zawartość to w zasadzie kod z Twojego pierwszego postu (narazie z cytatu ;p):

Kod
// ==UserScript==
// @name          jQueryPlay
// @namespace     http://www.example.com/jQueryPlay/
// @description   Plays around with jQuery. Simply appends " more text." to string in the element with id sometext.
// @include       http://forum.php.pl*
// @require       http://code.jquery.com/jquery-latest.min.js
// ==/UserScript==

$(document).ready(function() {
$("a").click(function() {
alert('Hello world!');
});
});



włącz mozille i włącz greseamonkey - zminimalizuj mozille i nie myśl przez chwilę (IMG:style_emoticons/default/winksmiley.jpg)

idź do katalogu z plikiem i kliknij prawym myszki na tym skrypcie-> otwórz za pomocą i wybierz mozille - teraz zainstalujesz...

wejdź na forum.php.pl i klikaj jakikolwiek link - zanim przejdziesz na inną stronę powinno być to co chciałeś (IMG:style_emoticons/default/winksmiley.jpg)




a teraz mała jeszcze uwaga co do Twojego kodu:

// @include * - nie wiem czy to działa na wszystkich stronach - już dłuższy czas nie musiałem pisać skryptów dla siebie a jak pisałem to pod konkretne strony - potem poeksperymentujesz jak już będzie powyższe działało ;p

// @name - co do tego nie wiem czy mogą być spacje w nazwie jak Ty podałeś ;p

gdy potrzebowałem pisać userscript to większość pisałem pod operę i jakbyś czasem chciał tam pisać to drobne uwagi - jeśli rozszerzenie jak w greseamonkey to skrypt wykona się po załadowaniu dom'u, jeśli rozszerzenie tylko js to skrypt jest aktywny od początku wczytywania (zanim jeszcze się dom wczyta) - i tu już sam musisz zdarzeniami operować

jeszcze apropo mozilli - tam skrypty od funkcji na stronie bodajrze mocno są oddzielono - ale jeśli chcesz je wywoływać to poczytaj tip'y w manualu żeby nie korzystać z unsafe.Window (jakoś tak się pisze ;p)

w operze skrypty są mniej oddzielone od obiektu window (wielu stwierdzi że za mało) ale wystarczy pisać tylko anonimowe obiekty gdzie da się zawrzeć także anonimowe funkcje posiadające jednak wewnętrzne nazwy - jeśli potrzebowałem załączyć jakąś mniejszą bibliotekę (tak mniejszą gdyż jakoś nie kożystam z tak dużych bibliotek - co najwyżej czasami przeglądam źródła ;p) to w operze można załączyć przez dom (akurat niedawno tu na forum był temat o załączaniu prototype przez dom)...

Cytat
Da się doładować 2 pliki do jednego skryptu?


z tego co pamiętam to da się (IMG:style_emoticons/default/winksmiley.jpg) - a z tego co sprawdziłem to sporo pamiętam jeszcze (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował zegarek84 6.12.2009, 23:02:37
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.12.2025 - 15:13