Wtyczka do przeglądarki Chrome służąca do wyszukiwania i podświetlania niewidocznych znaków, takich jak np. zero-width space (U+200B) czy zero-width non-joiner (U+200C).
Niewidoczne znaki mogą być używane do różnych celów, np. do omijania filtrów słów, do ukrycia złośliwych linków, do tworzenia fałszywych kont w mediach społecznościowych. Dzięki wtyczce, użytkownicy mogą wykryć te znaki, co zwiększa ich bezpieczeństwo w Internecie. Dodatkowo, wtyczka pozwala na badanie, jakie znaki są używane na stronach internetowych, co może być interesujące dla programistów i entuzjastów związanych z tematyką bezpieczeństwa.
- Wyszukiwanie i podświetlanie niewidocznych znaków na stronach internetowych
- Pełna obsługa Dokumentów Google - wykrywanie niewidocznych znaków w edytowalnych dokumentach
- Możliwość dostosowania listy wyszukiwanych znaków
- Statystyki znalezionych znaków
- Wyraźne podświetlanie niewidocznych znaków z animacją
- Obsługa chronionych stron (chrome://, about://)
- Nawigacja między znalezionymi znakami
- Rozbudowana lista 85+ znaków specjalnych i niewidocznych
- Zero-width space (U+200B) - niewidoczna spacja o zerowej szerokości
- Zero-width non-joiner (U+200C) - znak zapobiegający łączeniu znaków
- Zero-width joiner (U+200D) - znak wymuszający łączenie znaków
- Left-to-right mark (U+200E) - niewidoczny znak sterujący kierunkiem tekstu od lewej do prawej
- Right-to-left mark (U+200F) - niewidoczny znak sterujący kierunkiem tekstu od prawej do lewej
- Word joiner (U+2060) - niewidoczny znak łączący słowa, podobny do ZWSP
- Function application (U+2061) - niewidoczny znak matematyczny "zastosowania funkcji"
- Invisible times (U+2062) - niewidoczny znak mnożenia w notacji matematycznej
- Invisible separator (U+2063) - niewidoczny separator w notacji matematycznej
- Invisible plus (U+2064) - niewidoczny znak dodawania w notacji matematycznej
- Hair space (U+200A) - bardzo wąska spacja
- Narrow no-break space (U+202F) - wąska niełamliwa spacja
- Medium mathematical space (U+205F) - średnia spacja matematyczna
- Soft hyphen (U+00AD) - miękki łącznik, widoczny tylko przy łamaniu linii
- Object replacement character (U+FFFC) - znak zastępujący obiekt
- Byte order mark (BOM) (U+FEFF) - znacznik kolejności bajtów
- Mongolian Vowel Separator (U+180E) - cienka spacja w piśmie mongolskim
- Left-to-Right Override (U+202D) - wymusza kierunek zapisu od lewej do prawej
- Right-to-Left Override (U+202E) - wymusza kierunek zapisu od prawej do lewej
- Left-to-Right Isolate (U+2066) - izoluje fragment tekstu od lewej do prawej
- Right-to-Left Isolate (U+2067) - izoluje fragment tekstu od prawej do lewej
- First Strong Isolate (U+2068) - izoluje tekst i wykrywa pierwszy mocny kierunek
- Pop Directional Isolate (U+2069) - kończy izolację kierunku
- Inhibit/Activate Arabic Form Shaping (U+206A, U+206B) - przestarzałe znaki kontrolne
- National/Nominal Digit Shapes (U+206C, U+206D) - przestarzałe znaki kontrolne
- Activate/Inhibit Symmetrical Swapping (U+206E, U+206F) - przestarzałe znaki kontrolne
- Ideographic Space (U+3000) - pełnoszerokowa spacja w CJK
- Hangul Filler (U+3164) - pusty glif, używany w koreańskim Hangul
- Braille Pattern Blank (U+2800) - niewidoczny znak brajlowski stałej szerokości
- Variation Selectors 1-16 (U+FE00-U+FE0F) - modyfikatory poprzedniego znaku
- Language Tag (U+E0001) - tag języka
- Tag Space (U+E0020) - spacja używana w tagach
- Cancel Tag (U+E007F) - anuluje działanie tagu
- En dash (U+2013) - myślnik średniej długości
- Left/Right single quotation mark (U+2018, U+2019) - cudzysłowy pojedyncze
- Left/Right double quotation mark (U+201C, U+201D) - cudzysłowy podwójne
- Paragraph separator (U+2029) - separator akapitu
- End of text (U+0003) - znak końca tekstu
- Line tabulation (U+000B) - tabulacja pionowa
- Non breaking space (U+00A0) - niełamliwa spacja
- Pop directional formatting (U+202C) - kończy formatowanie kierunkowe
- Tab (U+0009) - znak tabulacji
- Line Feed (U+000A) - znak nowej linii
- Form Feed (U+000C) - znak wysunięcia strony
- Carriage Return (U+000D) - znak powrotu karetki
- Em Space (U+2003) - spacja o szerokości litery "M"
- En Space (U+2002) - spacja o szerokości litery "N"
- Thin Space (U+2009) - cienka spacja
- Figure Space (U+2007) - spacja o szerokości cyfry
- Punctuation Space (U+2008) - spacja o szerokości znaku interpunkcyjnego
- Four-Per-Em Space (U+2005) - spacja o szerokości 1/4 "M"
- Six-Per-Em Space (U+2006) - spacja o szerokości 1/6 "M"
- Mathematical Minus (U+2212) - matematyczny minus
- Multiplication Sign (U+00D7) - znak mnożenia
- Division Sign (U+00F7) - znak dzielenia
- Line Separator (U+2028) - separator linii
- Ogham Space Mark (U+1680) - spacja w piśmie Ogham
- Arabic Letter Mark (U+061C) - marker kierunku tekstu arabskiego
- Greek Question Mark (U+037E) - grecki znak zapytania (wygląda jak średnik)
- Full-width Semicolon (U+FF1B) - szeroki średnik
- Full-width Comma (U+FF0C) - szeroki przecinek
- Full-width Period (U+FF0E) - szeroka kropka
- Substitute (U+001A) - znak zastępczy
- Escape (U+001B) - znak ucieczki
- Delete (U+007F) - znak usunięcia
- Interlinear Annotation Anchor (U+FFF9) - kotwica adnotacji międzyliniowej
- Interlinear Annotation Separator (U+FFFA) - separator adnotacji międzyliniowej
- Interlinear Annotation Terminator (U+FFFB) - terminator adnotacji międzyliniowej
- Otwórz Chrome i przejdź do
chrome://extensions/
- Włącz "Tryb dewelopera" (przełącznik w prawym górnym rogu)
- Kliknij przycisk "Załaduj rozpakowane" i wybierz folder z wtyczką
- Wtyczka powinna pojawić się na liście zainstalowanych rozszerzeń
Na powyższym obrazku widać interfejs wtyczki oraz sposób podświetlania niewidocznych znaków na stronie.
Wtyczka podświetla niewidoczne znaki na stronie, czyniąc je łatwymi do wykrycia:
Normalny tekst zawieraniewidoczneznaki, które są trudne do zauważenia.
Po aktywacji wtyczki:
Normalny tekst [ZWSP] zawiera [ZWSP] niewidoczne [ZWSP] znaki, które są trudne do zauważenia.
Wtyczka oferuje przejrzysty interfejs użytkownika z następującymi elementami:
- Panel z przyciskami "Podświetl niewidoczne znaki" i "Wyczyść podświetlenia"
- Przełącznik trybu automatycznego
- Panel nawigacji z przyciskami "Poprzedni" i "Następny"
- Listę wykrywanych znaków z możliwością edycji
- Sekcję statystyk pokazującą znalezione znaki
Po włączeniu trybu automatycznego ikona wtyczki zmienia wygląd, sygnalizując aktywny tryb:
Po znalezieniu niewidocznych znaków, wtyczka umożliwia nawigację między nimi:
- Aktualnie wybrany znak jest podświetlony z animacją pulsowania
- Licznik pokazuje bieżącą pozycję i łączną liczbę znalezionych znaków (np. "3/7")
- Przyciski "Poprzedni" i "Następny" pozwalają łatwo przemieszczać się między znakami
- Kliknij ikonę wtyczki na pasku narzędzi Chrome
- Kliknij przycisk "Podświetl niewidoczne znaki", aby wyszukać i podświetlić niewidoczne znaki na aktualnie otwartej stronie
- Użyj przycisku "Wyczyść podświetlenia", aby usunąć podświetlenia
- Możesz edytować listę wyszukiwanych znaków w polu tekstowym i zapisać ją za pomocą przycisku "Zapisz listę"
- Użyj przycisków "Poprzedni" i "Następny" do nawigacji między znalezionymi znakami
- Włącz opcję "Tryb automatyczny", aby wtyczka automatycznie skanowała każdą odwiedzaną stronę:
- Po włączeniu tej opcji, ikona wtyczki zmieni swój wygląd na pomarańczowy z zielonym znacznikiem "A"
- Wszystkie niewidoczne znaki będą automatycznie podświetlane na każdej stronie
- Możesz w dowolnym momencie wyłączyć tę opcję, aby powrócić do trybu manualnego
Wtyczka obsługuje również Dokumenty Google, co pozwala na wykrywanie niewidocznych znaków w edytowalnych dokumentach:
- Otwórz dokument Google
- Kliknij ikonę wtyczki i wybierz "Podświetl niewidoczne znaki"
- Wtyczka przeskanuje zawartość dokumentu, w tym tekst w obszarach edytowalnych
- Znalezione niewidoczne znaki zostaną podświetlone w sposób, który nie zakłóca dalszej edycji dokumentu
- Możesz używać przycisków nawigacji, aby przechodzić między znalezionymi znakami
Format dodawania znaków w polu edycji:
Nazwa znaku,Kod Unicode
Przykład:
Zero-width space,U+200B
Zero-width non-joiner,U+200C
Word joiner,U+2060
Wtyczka wykorzystuje:
- Manifest V3 dla rozszerzeń Chrome
- Chrome Storage API do przechowywania ustawień
- Chrome Scripting API do wstrzykiwania skryptów
- Service Worker (background.js) do obsługi trybu automatycznego
- MutationObserver do wykrywania zmian w DOM
- Chrome Messaging API do komunikacji między komponentami
Struktura projektu:
manifest.json
- plik konfiguracyjny rozszerzeniapopup.html
- interfejs użytkownika z kontrolkamipopup.js
- logika interfejsu i komunikacja z content.jscontent.js
- wykrywanie i podświetlanie niewidocznych znakówbackground.js
- service worker odpowiedzialny za tryb automatycznystyles.css
- style dla podświetlania i interfejsuimages/
- ikony w różnych rozmiarach i wariantachtest_page.html
- strona testowa z przykładami niewidocznych znaków
- Wtyczka nie wykrywa znaków w elementach iframe z innych domen (ograniczenie bezpieczeństwa)
- Niektóre strony z zaawansowanym JavaScript mogą dynamicznie modyfikować DOM, co może wpływać na podświetlenia
- Znaki Unicode z wyższych płaszczyzn (np. niektóre znaki TAG) mogą nie być obsługiwane w starszych przeglądarkach
- Wtyczka nie działa na stronach chrome:// i about:// ze względu na ograniczenia bezpieczeństwa Chrome
- W Dokumentach Google, niektóre zaawansowane formatowania mogą wpływać na dokładność wykrywania
- Dodano pełną obsługę Dokumentów Google
- Dodano rozszerzoną listę 85+ specjalnych i niewidocznych znaków
- Ulepszono podpowiedzi dla znalezionych znaków
- Zoptymalizowano wykrywanie znaków w obszarach edytowalnych
- Poprawiono nawigację między znalezionymi znakami
- Naprawiono działanie trybu automatycznego przy przełączaniu między kartami
- Zoptymalizowano kod do skanowania kart poprzez wydzielenie wspólnej funkcjonalności
- Poprawiono obsługę zdarzeń przeglądarki dla lepszego wykrywania znaków
- Ulepszono interfejs użytkownika z rozwijanymi sekcjami funkcji
- Dodano obsługę chronionych stron (chrome://, about://)
- Rozbudowano listę wspieranych znaków Unicode (50+ typów)
- Poprawiono obsługę błędów i raportowanie problemów
- Dodano tryb automatycznego skanowania
- Dodano nawigację po znalezionych znakach (Poprzedni/Następny)
- Dodano animacje dla lepszej widoczności znalezionych znaków
- Rozszerzono listę wspieranych znaków Unicode
Jeśli wtyczka nie działa poprawnie:
- Upewnij się, że wtyczka ma uprawnienia do wszystkich stron (
<all_urls>
) - Sprawdź, czy tryb automatyczny jest włączony, jeśli oczekujesz automatycznego skanowania
- Odśwież stronę po włączeniu trybu automatycznego
- Sprawdź konsolę deweloperską (
F12
) pod kątem błędów - W przypadku problemów z Dokumentami Google, upewnij się, że masz zainstalowaną najnowszą wersję wtyczki
MIT
Oryginalny pomysł i implementacja: Rafał Skonieczka