2011-08-17 17 views

Odpowiedz

17

Zamiast wyłączać funkcji wyszukiwania, można zrobić to tak, że tu nie znajdzie słów! Jednym ze sposobów na to byłoby użycie deklaracji CSS content do wstrzykiwania słów. Znajdź ich nie znajdzie:

<div class="word-foobar"></div> 

.word-foobar:before { 
    content: "Foobar"; 
} 

Można dość łatwo napisać JavaScript, aby automatycznie wygenerować dla Ciebie wszystkie niezbędne reguły CSS.

+1

dziękuję, to jest naprawdę przydatne, nigdy nie słyszałem o tym przed –

+0

Jestem zaskoczony, że Find nie może znaleźć wygenerowanej treści. – thirtydot

+0

fajne rozwiązanie dla nowoczesnych przeglądarek – Blowsie

1

Nie. Zastąpienie zdjęciami jest najszybszym i najbezpieczniejszym sposobem. (Jeśli nie chcesz przełączać się do apletu Flash/Java/itp.)

+0

Jest możliwe, aby zastąpić skróty domyślną przeglądarkę i nie więcej niż kilka razy czy to ważne także. .. po prostu weź JSfiddle lub Google Docs na przykład – Blowsie

+0

@ Blowsie: Właśnie dlatego wspomniałem słowo "najbezpieczniejszy". Jeśli w jakiś sposób zablokujesz klucz w grze online - ktoś może jeszcze łatwo odblokować klucz, pisząc "javascript: unblockingCode ..." na pasku adresu. – bezmax

4

Nie sądzę, że istnieje sposób na całkowite wyłączenie tej funkcji i nie powinno być sposobu, aby ją wyłączyć.

Jednak można zapewnić, że jakiś tekst nie zostanie znaleziony przez Ctrl + F pisząc go z dala, że ​​przeglądarka nie traktuje tekst ciągłą.

Używanie obrazów to jedno z możliwych rozwiązań.

Alternatywnie możesz losować litery i ponownie je ułożyć za pomocą magii CSS (mój CSS-fu jest zbyt słaby, aby dać przykład, niestety). Na przykład, jeśli chcesz "ukryć" słowo "cześć", wtedy napisz "lehol" z każdą literą w oddzielnym <div> i zastosuj kilka stylów CSS, aby wizualnie litery były we właściwej kolejności.

Należy zauważyć, że to (i prawdopodobnie wszystkie inne działające rozwiązania) będzie również również przerwać kopiowanie i wklejanie tekstu.

+3

Możliwe jest zastąpienie domyślnych skrótów przeglądarki, i jest więcej niż poprawny czas to też ... po prostu weź JSfiddle lub Dokumenty Google na przykład – Blowsie

+0

Ja się poprawiam. Myślę jednak, że odpowiedź @nickf jest prawdopodobnie najlepsza. –

1

można to zrobić z javascript - to tylko pseudokod (napisany w jQuery), a nie jestem pewien, jak słuchać zarówno dla CTRL i F, ale masz pomysł:

$(body).keypress(function(e) 
{ 
    if (e.keyCode===17) 
    { 
     //ctrl has been pressed, listen for subsequent F press (keyCode 70) 
     //if next keyCode===70 
     return false; 
    } 
}); 

Zwrócenie false w ten sposób spowoduje, że przeglądarka nic nie zrobi po naciśnięciu klawiszy, o ile wiem. możesz również użyć e.preventDefault();, aby zapobiec temu, co się stanie, jeśli return false; nie wystarczy.

Nadzieja to pomaga

+0

dodatkowe czytanie: strona testowa kodu klucza tutaj: http://asquare.net/javascript/tests/KeyCode.html i wtyczka ctrl jquery, aby pomóc w wykryciu naciśnięcia klawiszy CTRL oraz klawisza: http: // www. gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/ – jammypeach

+0

Pamiętaj, że nawet jeśli to zadziała, nie uniemożliwi to użytkownikowi przejścia do menu i wybrania opcji "znajdź na stronie" stamtąd. Lub za pomocą alternatywnego skrótu, jeśli używa on ustawień regionalnych, które używają innej kombinacji klawiszy do wyszukiwania. –

+0

@ Joachim: żadna technologia oparta na sieci nie jest w stanie zapobiec korzystaniu przez użytkownika z menu przeglądarki ani jej nie powinno. Korzystając z wtyczki, do której się przyłączyłem, możesz łatwo złapać wydarzenie ctrl-f i przestać robić to, co normalnie robi - ale to (o ile wiem) wszystkie js mogą zrobić w tym przypadku. Aby funkcja find nie znalazła niczego, odpowiedź NicFa wydaje się najlepsza. – jammypeach

7

Można wyłączyć skrót klawiaturowy w większości przeglądarek (IE9, Firefox, Chrome, Opera), ale nie można przestać ktoś używając Znajdź klikając je w przeglądarce.

Oto niektóre z napędem jQuery JavaScript, który to robi:

$(window).keydown(function(e){ 
    if ((e.ctrlKey || e.metaKey) && e.keyCode === 70) { 
     e.preventDefault(); 
    } 
}); 

Zrobione z http://caniuse.com/, gdzie ta funkcja regularnie mnie irytuje. Na tej stronie służy ona do tego, aby CTRL + F wykonywał niestandardowe wyszukiwanie na stronie, zamiast całkowicie je wyłączać.

2

Założę się, że użycie keydown umożliwiłoby to, jednak z zasady zmiana sposobu działania przeglądarki jest złym pomysłem. Chociaż jest to dla ciebie trudniejsze, istnieją techniki wymiany czcionek, które powinny ułatwić to zadanie.

Jeśli znajdziesz sposób, aby to zrobić, zawsze istnieje niebezpieczeństwo, że ktoś go obejrzy. O wiele lepiej jest napisać stronę do pracy, niż zhakować przeglądarkę.

+1

Możliwe jest zastąpienie domyślnych skrótów przeglądarki, a jest też trochę więcej niż poprawny czas ... po prostu weź JSfiddle lub Google Docs na przykład – Blowsie

+0

Tak, prawda - tak jak w przypadku większości tego typu zmian, istnieją ważne powody, w tych przypadkach jest on ważny. Chodzi mi o to, że w przypadku większości aplikacji dostarczanych przez przeglądarkę nie jest to właściwy sposób. W konkretnym przypadku, myślę, że uczynienie aplikacji niedostępnej dla wyszukiwań jest lepszą opcją niż próba swobodnego wyszukiwania we wszystkich przeglądarkach. –

55

Kod

window.addEventListener("keydown",function (e) { 
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { 
     e.preventDefault(); 
    } 
}) 
+13

To jest poprawna odpowiedź, dlaczego nie jest akceptowana? – Greg

+3

jest menu Znajdź opcję – dmi3y

+4

Nie zapomnij także zapobiec F3 (keyCode == 114) –

0

Dlaczego nie używać DOM Cienia? Pozwoli to na niedostępność Twoich treści przez wyszukiwarki lub czytniki ekranu. I ma dodatkową zaletę, że ma dokładnie takie samo zachowanie dla użytkownika.

Spójrz tutaj, aby uzyskać więcej informacji: Introduction to Shadow DOM

Powiązane problemy