dotjs pod Windows29-06
2011

Współzałożyciel Githuba stworzył wtyczkę dla Chrome, stanowiącą odpowiednik Firefoksowego Greasemonkey. Pozwala ona podpiąć i wykonać na określonej stronie własne skrypty JS bez potrzeby wgrywania plików na jakikolwiek serwer. Coś za coś: zmiany mają charakter lokalny - zobaczymy je tylko na komputerze, na którym została zainstalowana wtyczka.

.js działa w następujący sposób: wtyczka przesyła zapytanie o plik js do serwera www (mongrel), który przeszukuje katalog .js w poszukiwaniu pliku nazywającego się jak domena strony, z dopisanym rozszerzeniem .js - czyli np. bjauy.com.js. Jeśli go znajdzie - zostaje on przesłany przeglądarce jako dodatkowy plik i wykonany tak, jakby był rzeczywiście częścią kodu strony. Wg autora sztuczka z lokalnym serwerem www jest konieczna ze względu na ograniczenia dostępu, jakimi obwarowane zostały wtyczki dla Chrome (nie mogą odczytywać plików z dysku).

Póki co nie została przewidziana wersja pod Windows. Możemy jednak przy odrobinie wysiłku zainstalować wtyczkę:

  1. Do zabawy konieczne jest zainstalowane:
    • ruby (testowałem na wersji 1.9.2, do pobrania stąd),
    • mongrel - w linii poleceń ruby instalujemy poprzez:
      gem install mongrel
    • najnowsza wersja wtyczki pobrana z github
  2. po rozpakowaniu wtyczki z podkatalogu builds instalujemy wtyczkę (plik z rozszerzeniem crx), przeciągając go na okno Chrome
  3. folder ext kopiujemy do katalogu użytkownika (to, co jest opisane w wiki jako %HOMEPATH%), zmienamy mu nazwę na .js
  4. z folderu bin kopiujemy plik djsd jako djsd.rb i podmieniamy:
    dotjs = Class.new(WEBrick::HTTPServlet::AbstractServlet) do
      def do_GET(request, response)
        file    = File.expand_path("/#{request.path.gsub('/','')}")
        default = File.expand_path("/default.js")
        body = ''

    na:
    dotjs = Class.new(WEBrick::HTTPServlet::AbstractServlet) do
      def do_GET(request, response)
        file    = File.expand_path("~/.js/#{request.path.gsub('/','')}")
        default = File.expand_path("~/.js/default.js")
        body = ''

    (tak wyglądało to w wersji 1.3, w najnowszej autor usunął ~/.js i Windows się gubi)
  5. jeśli pliki .rb zostały powiązane z Ruby, to wystarczy uruchomić skrypt i przekonać się, czy działa - powinno pojawić się okno linii poleceń z informacjami o żądaniach wtyczki. Przetestować działanie możemy pisząc skrypt bjauy.com.js i dodając go do katalogu .js z punktu 3, modyfikujący tą stronę:
    $("#thisWorks").show()
    Ponieważ wtyczka ładuje jQuery, możemy skorzystać z jego dobrodziejstw rozszerzając nasze strony.
  6. Pozostaje dodać wykonywanie pliku djsd.rb automatycznie przy starcie systemu lub poprzez skrót.

Autor: maciej

Wpis w kategoriach: dotjs, chrome, windows

KomentarzeDodaj nowy komentarz

Brak komentarza

Dodaj komentarz