69 votos

Cómo prohibir el acceso directo de teclado robar por los sitios web en Firefox

Muchos sitios web, especialmente todo lo que involucra la edición de texto enriquecido (este sitio es culpable también), robar atajos de teclado utilizados normalmente para el control de Firefox y ponerlos a hacer algo a cambio. Es totalmente exasperante cuando presiono algo como Cmd-número de Cmd-L, Cmd-T, o Cmd-K y no hace lo que yo quiero. Puedo hacer que se detenga?

De hecho, probablemente sería el mejor si pudiera prohibir el robo de todos los Cmd-* los accesos directos. Nunca he visto que les sirve para nada útil. Es posible?

27voto

Martin J.H. Puntos 276

Gracias a Greasemonkey nuevo "@ejecución en" propiedad, esto es ahora posible!

Me tomó inspiración de este script y esta secuencia de comandos para combinarlos en un Userscript que se haya podido intercepta los atajos de teclado Ctrl+t y Ctrl+s. He probado en Firefox 17 de ESR y Firefox 25.

// ==UserScript==
// @name           Disable Ctrl+s and Ctrl+t interceptions
// @description    Stop websites from highjacking keyboard shortcuts
//
// @run-at         document-start
// @include        *
// @grant          none
// ==/UserScript==

// Keycode for 's' and 't'. Add more to disable other ctrl+X interceptions
keycodes = [83, 84];  

(window.opera ? document.body : document).addEventListener('keydown', function(e) {
    // alert(e.keyCode ); //uncomment to find more keyCodes
    if (keycodes.indexOf(e.keyCode) != -1 && e.ctrlKey) {
        e.cancelBubble = true;
        e.stopImmediatePropagation();
    // alert("Gotcha!"); //ucomment to check if it's seeing the combo
    }
    return false;
}, !window.opera);

5voto

DMA57361 Puntos 14505

Dado que los temas parece ser JavaScript eventos de teclado robar las pulsaciones de teclas, no sería posible construir un script en JavaScript (para ser utilizado a través de Greasemonkey) que desata todos estos eventos de teclado, volviendo así el uso adecuado de cada acceso directo al navegador?

No estoy seguro de qué tan factible es esto, pero alguien con más de JavaScript / Greasemonkey experiancia puede ser capaz de ayudar (podría ser vale la pena preguntar sobre ELLO).

5voto

d34dh0r53 Puntos 941

Una amplia investigación muestra que a partir de la versión actual de Firefox (3.6.x) esto es imposible - todas las claves de unión de los conflictos se resuelven con las prioridades: Sistema > sitio Web > Firefox bastante estúpido que es. Ninguno de los complementos que he probado parece ser capaz de arreglarlo.

Posiblemente podría ser factible en futuras versiones, pero ahora la respuesta es Imposible.

4voto

njd Puntos 6812

El problema es que cualquier página puede ejecutar código Javascript que crea un controlador de eventos para agarrar a los eventos de pulsación de tecla, y Firefox javascript, los controles no son lo suficientemente fino para que deje sin romper otras características javascript.

La única forma de evitar esto es deshabilitar Javascript (Herramientas -> Opciones [Contenido] ficha, desactive la casilla Activar JavaScript). O usted puede deshabilitar Javascript en función de cada sitio con una extensión como NoScript.

Firefox te permite evitar ciertos usos de Javascript, como mover/redimensionar ventanas, cambiar o deshabilitar el menú contextual, etc; pero no hay nada para evitar que los sitios web interceptar los eventos de teclado.

Tal vez hay una extensión que se da a este nivel de control - no soy consciente de uno.
Hay Opciones Javascript, pero que la extensión ya no se actualiza.

0voto

void.pointer Puntos 125

Es probable que los plugins de terceros está tomando el enfoque de la ventana principal del navegador. En caso de que la entrada de teclado (excepto las interrupciones) obtendrá interceptado por el plugin. Si no te gusta esta siempre se puede quitar el infractor plugin(s) [supongo que es probable flash].

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: