que cada navegador tiene en la funcionalidad de la página (ctrl + F). ¿Hay alguna manera de detectar las búsquedas de los usuarios en javascript para poder adjuntar acciones adicionales?¿Hay alguna forma de detectar encontrar en las búsquedas de páginas en javascript
Respuesta
Por supuesto, se puede tratar de gancho en ctrl+f
o cmd+f
acceso directo, pero incluso si eso funciona en "algunos" navegadores, de esa manera solo sabría que un usuario presionó ese atajo y es más probable que busque algo.
Si el navegador permite sobrescribir ese acceso directo, puede bloquear aún más el comportamiento predeterminado e implementar su propia lógica de búsqueda en el sitio. Pero eso se considera la mayoría de las veces como una muy mala práctica. Sobrescribir el comportamiento del navegador nativo es bastante malo.
Por otro lado, no hay un "evento" que se activa cuando un navegador ejecuta un proceso de búsqueda. En pocas palabras, no, en realidad no hay forma de detectar o conectar un proceso de búsqueda con javascript (si hay uno, nunca será compatible con cross browser).
Como estaba interesado en el proceso de búsqueda, no solo contl + F, entonces tendré que vivir con esto. Gracias – Alexander
Usted podría hacer (para detectar whenb un ctrl usuario pulse + f):
window.onkeydown = function(e){
if(e.keyCode == 70 && e.ctrlKey){
//user pressed ctrl+f
}
violín aquí: http://jsfiddle.net/d8T72/
Aquí hay una solución que puede dar cuenta de situaciones de búsqueda de página alternativas (por ejemplo, Command + F, '/' en Firefox). Comprueba si alguna de estas teclas pulsa y establece un temporizador cuando ocurren. Si la ventana se ve borrosa poco después, se supone que se muestra el cuadro de diálogo Buscar.
Desventajas: no cuenta para el diálogo "Buscar" que se inicia a través del menú. No veo ninguna manera de estar seguro acerca de esta parte, ya que (hasta donde sé, al menos) la IU del navegador está fuera de los límites de JavaScript que se ejecuta dentro del 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, probado en Chrome, Safari y Firefox
Como inicialmente sugerida por @Nicola Peluchetti, aquí es una versión ligeramente mejorada por la característica oler:
window.onkeydown = function(e){
var ck = e.keyCode ? e.keyCode : e.which;
if(e.ctrlKey && ck == 70){
alert('Searching...');
}
}
- 1. ¿Hay alguna forma de detectar matrices circulares en PHP puro?
- 2. ¿Hay alguna manera de resaltar búsquedas múltiples en (g) Vim?
- 3. ¿Hay alguna forma de detectar SMS en E-Mail Gateways?
- 4. ¿Hay alguna forma de compartir objetos entre páginas de php?
- 5. ¿Hay alguna forma de detectar un lenguaje RTL en Java?
- 6. ¿Hay alguna forma de detectar el inicio de una descarga en JavaScript?
- 7. ¿Hay alguna forma de evitar que las páginas de AJAX se vean solos en un navegador?
- 8. ¿Hay alguna forma de detectar un software de registro clave?
- 9. ¿Hay alguna forma de detectar si un usuario tiene conexión wifi con php o javascript?
- 10. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 11. ¿Hay alguna forma de detectar todas las excepciones (incluso las tratadas) con JCLDebug?
- 12. ¿Hay alguna forma de detectar una animación en ejecución en iOS?
- 13. ¿Hay alguna forma de encontrar la dirección de una referencia?
- 14. ¿Hay alguna forma de detectar si un archivo javascript externo está completamente cargado?
- 15. ¿Hay alguna forma de detectar cuándo se satisfacen "accidentalmente" las dependencias de archivos?
- 16. ¿Hay alguna forma de escribir pruebas para 500 páginas de error en Rails?
- 17. En Symfony, ¿hay alguna forma de crear páginas de archivos PDF a la vez?
- 18. ¿Hay alguna forma de automatizar las pruebas de Windows Forms?
- 19. ¿Hay alguna forma de currying en C?
- 20. ¿Hay alguna forma de sobrecargar + = en python?
- 21. Gmail IMAP: ¿Hay alguna forma de encontrar todas las etiquetas (carpetas) en las que se encuentra un mensaje en particular?
- 22. ¿Hay alguna forma de detectar todas las rutas no coincidentes con Backbone?
- 23. ¿Hay alguna forma de evitar que Javascript falle silenciosamente?
- 24. ¿Hay alguna forma de restablecer las insignias de error en Netbeans?
- 25. ¿Hay alguna forma de detectar MySQL y errores de base de datos en PHP?
- 26. ¿Hay alguna forma de enumerar las señales de Django?
- 27. ¿Hay alguna forma de filtrar las palabras ofensivas de Jcaptcha?
- 28. ¿Hay alguna forma de detectar el estado de roaming en iOS 6?
- 29. ¿Hay alguna forma de sumar y restar valores en CSS?
- 30. ¿Hay alguna forma de detectar que la ventana está actualmente activa en IE8?
Interesante pregunta; Nunca he escuchado que se haga esto, y no creo haberlo visto en acción, pero siento curiosidad ahora. – Pointy
¿puedes escuchar un evento de pulsación ctrl + F? (o comando + F, etc.) o eso no funciona debido al diálogo de búsqueda? – jlb
Bueno^F no es la única forma de iniciar una búsqueda: en Firefox es "/" (al menos, es para mí). – Pointy