każda przeglądarka ma znaleźć na stronie funkcji (ctrl + F). Czy istnieje sposób, aby wykryć wyszukiwania użytkowników w javascript, aby móc dołączyć dodatkowe działania.Czy istnieje sposób, aby wykryć wyszukiwanie na stronie wyszukiwania w javascript
Odpowiedz
Oczywiście można spróbować hakiem do ctrl+f
lub cmd+f
skrótu, ale nawet jeśli działa to w "niektórych" przeglądarkach, w ten sposób wiadomo tylko, że użytkownik nacisnął ten skrót i najprawdopodobniej szuka czegoś.
Jeśli przeglądarka pozwala na zastąpienie tego skrótu, można dalej zablokować domyślne zachowanie i zaimplementować własną logikę wyszukiwania w witrynie. Jest to jednak uważane za bardzo złą praktykę. Nadpisywanie natywnego zachowania przeglądarki jest całkiem niezłe.
Z drugiej strony nie ma "zdarzenia", które zostanie wywołane, gdy przeglądarka wykona proces wyszukiwania. Krótko mówiąc, nie, faktycznie nie ma sposobu, aby wykryć lub podłączyć się do procesu wyszukiwania z javascript (jeśli taki istnieje, to nigdy nie będzie kompatybilny z przeglądarką).
Ponieważ interesowałem się procesem wyszukiwania, a nie tylko contl + F, więc będę musiał z tym żyć. dzięki – Alexander
Można to zrobić (w celu wykrycia whenb prasę użytkownik Ctrl + F):
window.onkeydown = function(e){
if(e.keyCode == 70 && e.ctrlKey){
//user pressed ctrl+f
}
Fiddle tutaj: http://jsfiddle.net/d8T72/
Oto rozwiązanie, które może uwzględniać alternatywne sytuacje odnajdywania strony (np. Command + F, "/" w przeglądarce Firefox). Sprawdza każdy z tych klawiszy i ustawia licznik czasu, gdy się pojawią. Jeśli okno zostanie wkrótce zamazane, wówczas zakłada się, że wyświetlane jest okno dialogowe Znajdź.
Wady: nie uwzględnia okna dialogowego "Wyszukiwanie" uruchamianego z menu. Nie widzę żadnej pewności co do tej części, ponieważ (o ile mi wiadomo przynajmniej) interfejs przeglądarki jest niedostępny dla JavaScriptu działającego wewnątrz DOM.
var keydown = null;
$(window).keydown(function(e) {
if ((e.keyCode == 70 && (e.ctrlKey || e.metaKey)) ||
(e.keyCode == 191)) {
keydown = new Date().getTime();
}
return true;
}).blur(function() {
if (keydown !== null) {
var delta = new Date().getTime() - keydown;
if (delta >= 0 && delta < 1000)
console.log('finding');
keydown = null;
}
});
jsFiddle, przetestowane w Chrome, Safari i Firefox
jak początkowo sugerował @Nicola Peluchetti, tutaj jest nieznacznie poprawiła wersja przez funkcję wąchania:
window.onkeydown = function(e){
var ck = e.keyCode ? e.keyCode : e.which;
if(e.ctrlKey && ck == 70){
alert('Searching...');
}
}
- 1. Czy istnieje sposób na uniknięcie wyszukiwania liniowego?
- 2. Czy istnieje prosty sposób utworzenia tabeli wyszukiwania javascript?
- 3. Czy istnieje sposób wyszukiwania historii w nrepl?
- 4. Wyszukiwanie w plikach na zdalnej stronie FTP
- 5. Javascript, aby wykryć, czy użytkownik zmienia zakładkę
- 6. Czy istnieje sposób, aby odwrócić formatowanie przez Intl.NumberFormat w JavaScript
- 7. Czy istnieje sposób na skomentowanie znaczników na stronie .ASPX?
- 8. Czy istnieje jakiś sposób, aby wykryć, czy tabela bazy danych istnieje z laravel
- 9. Czy istnieje sposób na znalezienie nieużywanego CSS na stronie internetowej?
- 10. Wyszukiwanie pełnotekstowe w JavaScript
- 11. Czy istnieje sposób, aby prześledzić wywołanie funkcji javascript?
- 12. Czy istnieje sposób, aby zignorować odpowiedź formularza?
- 13. dane wejściowe wyszukiwania na stronie z wynikami wyszukiwania google
- 14. niezawodny sposób, aby wykryć, czy kolumna w data.frame is.POSIXct
- 15. Algorytm wyszukiwania na stronie internetowej
- 16. Czy istnieje niebezpieczeństwo utworzenia UUID po stronie klienta JavaScript?
- 17. przy użyciu stat, aby wykryć, czy plik istnieje (wolno?)
- 18. Czy istnieje prosty sposób na ocenę JavaScript w WebStorm?
- 19. Czy istnieje automatyczny sposób wyszukiwania nieużywanych widoków w MVC?
- 20. Złożoność wyszukiwania i wyszukiwanie
- 21. Czy istnieje sposób, aby wykryć, że okno jest obecnie aktywne w IE8?
- 22. Czy istnieje sposób, aby wykryć przenośnie, że standardowy nagłówek jest dołączony przy użyciu makr?
- 23. Czy istnieje szybki sposób wyszukiwania zmiennych w R?
- 24. Czy istnieje sposób, aby ustawić baseurl dynamicznie w require.js?
- 25. Czy możemy użyć heterogenicznego komparatora wyszukiwania, aby przeprowadzić wyszukiwanie "częściowe dopasowanie" na pojemnikach asocjacyjnych STL?
- 26. Czy istnieje sposób, aby anulować TabControl.Items.CurrentChanging?
- 27. Zdarzenie JavaScript na stronie odsyłającej
- 28. Czy istnieje sposób, aby wyczyścić django.db.connection.queries?
- 29. Czy istnieje sposób, aby uciszyć rejestrowanie hsqldb?
- 30. Czy istnieje sposób na uruchomienie kodu R z JavaScript?
Ciekawe pytanie; Nigdy nie słyszałem o tym, co się stało, i nie sądzę, że kiedykolwiek widziałem to w akcji, ale teraz jestem ciekawy. – Pointy
Czy możesz nasłuchiwać zdarzenia keypown Ctrl + F? (lub komenda + F itd.) lub czy to nie jest bańka z powodu okna wyszukiwania? – jlb
Cóż^F nie jest jedynym sposobem zainicjowania wyszukiwania - w Firefoksie jest to "/" (przynajmniej dla mnie). – Pointy