Wiktor Zykubek
en 🇬🇧

Bookmarklet - zapomniana funkcja przeglądarek internetowych

Obecnie internet to straszne miejsce, gdzie “surfowanie” to bardziej pływanie w morzu plastikowych NPM-owych odpadów. Przeważająca część nowych stron internetowych jest tworzona przy użyciu wielkich frameworków, bibliotek i innych w większości przypadków zbędnych zależności. Jest wiele zastosowań, gdzie takie rozwiązania są przydatne i wskazane, ale nawet strony, które serwują tylko proste i z założenia statyczne treści zawierają mnóstwo niepotrzebnych skryptów bez żadnego powodu.

Oprócz tego mamy jeszcze całą masę rozszerzeń do przeglądarek. Dodają one przydatne funkcje, ale często spowalniają przeglądarkę i mają dostęp do prywatnych danych, których prawdopodobnie nikt z nas nie chce nikomu udostępniać. Ale co jeśli Ci powiem, że możesz usunąć część ze swoich rozszerzeń bez tracenia funkcjonalności, które oferują? We wszystkich przeglądarkach głównego nurtu, takich jak Firefox, Chrom(e)ium, Safari, oraz w ich mobilnych wersjach dostępna jest funkcja zwana bookmarklet. Ta niesamowita technologia została udostępniona 25 lat temu i jest wspierana do dzisiaj.

Wyjaśnienie

Bookmarklet to rodzaj zakładki w przeglądarce, która zamiast linku do strony uruchamia kod JavaScript. Inną nazwą dla bookmarkletów jest favelet.

Przykłady

Możesz zaznaczyć dowolną linijkę JavaScriptu poniżej, a następnie przeciągnąć ją na pasek zakładek1.

Wayback Machine

Otwieranie martwej strony internetowej korzystając z Archiwum Internetu, lub zapisywanie stanu jeszcze żyjącej strony.

Otwieranie:

javascript:location.href='https://web.archive.org/web/*/'+document.location.href.replace(/\/$/, '');

Zapisywanie:

javascript:void(window.open('https://web.archive.org/save/'+location.href));

Źródło: Wikipedia

Słowniki i tłumacze

Wysyłanie zaznaczonego tekstu do słownika lub tłumacza online.

javascript:void(window.open('https://www.diki.pl/?q='+encodeURIComponent(document.getSelection().toString())));

Inne

Niektóre z serwisów oferują nawet swoje własne zakładko-skrypty bookmarklety. Na przykład Miniflux pozwala na dodawanie nowych feedów RSS, a Linkding pozwala zapisać obecną stronę jako zakładkę.

Jak możesz zauważyć w moich przykładach, używam tej funkcjonalności głównie do integracji z zewnętrznymi serwisami, ale nic nie stoi na przeszkodzie, żeby wywołać dowolny inny kod… z małymi wyjątkami, o których piszę w sekcji problemy.

Problemy

Może zastanawiasz się, czemu ta technologia nie jest wykorzystywana częściej, jeśli jest tak prosta i użyteczna. Jest to spowodowane głównie Content Security Policy, które zostało wprowadzone do przeglądarek kilka (około 10) lat temu. Powodem jest ochrona przed podatnościami XSS. Niestety wiąże się to również z blokadą wykonywania niektórych skryptów użytkowników na stronach, które korzystają z tego mechanizmu. Na szczęście, nie wszystkie strony są objęte tym problemem, jak również nie każdy bookmarklet. Wszystkie przykłady, które podałem, powinny bez problemu działać na każdej stronie internetowej.


  1. Używanie bookmarkletów osób trzecich jest kiepskim pomysłem, ale to samo tyczy się rozszerzeń i innych skryptów znalezionych w internecie. Myślę, że to oczywiste, ale dla zasady o tym wspominam. ↩︎