14 votes

Est-il possible de désactiver les raccourcis clavier Javascript personnalisés dans Safari ?

J'ai une vingtaine d'années d'expérience dans l'utilisation d'Emacs, et les raccourcis clavier similaires à Emacs pour l'édition de texte sur Mac OS X sont très agréables. Malheureusement, certains sites Web (ahem) choisissent de les remplacer par du Javascript. Par exemple, l'un d'entre eux fait controlB insérer le texte **strong text** plutôt que de remonter d'un caractère.

Existe-t-il un moyen de faire en sorte que Safari ignore les combinaisons de touches Javascript qui tentent de remapper les combinaisons de touches standard de l'OS X ?

7voto

Zanson Points 249

Voici Le script de Rob W de meta mis à jour pour ne bloquer que cntrl-* et corrigé pour qu'il fonctionne avec NinjaKit qui est une extension safari pour exécuter les scripts de l'utilisateur.

NinjaKit : https://github.com/os0x/NinjaKit

script :

// ==UserScript==
// @name           Cya WMD shortcuts
// @namespace      Rob W
// @version        1.0
// @include          http://apple.stackexchange.com/*
// @include          http://stackoverflow.com/*
// @include          http://superuser.com/*
// @include          http://meta.superuser.com/*
// @include          http://serverfault.com/*
// @include          http://meta.serverfault.com/*
// @include          http://askubuntu.com/*
// @include          http://meta.askubuntu.com/*
// @include          http://*.stackexchange.com/*
// @include          http://answers.onstartups.com/*
// @include          http://meta.answers.onstartups.com/*
// @include          http://stackapps.com/*
// @run-at         document-end
// @grant          none
// ==/UserScript==
(function () {
    var p = document.getElementById('wmd-input');
    console.log("wmd-input:" + p);
    if (p) {
        p = p.parentNode;

        function ignore(e) {
            if (e.ctrlKey) {
                e.stopPropagation();
            }
        }
        p.addEventListener('keydown', ignore, true);
        p.addEventListener('keypress', ignore, true);
        p.addEventListener('keyup', ignore, true);
    }
})();

1voto

Tim B Points 1522

Cela fait un moment que je ne l'ai pas utilisé, mais la Privoxy Le serveur proxy a la possibilité de modifier le javascript pour changer le comportement. Si vous êtes prêt à faire fonctionner un serveur proxy, c'est une option.

J'ai cherché (mais pas de manière exhaustive), et je n'ai pas vu de plugin de navigateur qui réécrit le contenu (xml, html, CSS, ou javascript) comme le fait Privoxy. Dans la page web de Privoxy, cherchez le filtre js-annoyances. C'est là que vous trouverez des exemples de réécriture de javascript.

Il existe peut-être une implémentation plus moderne sous la forme d'un plugin de navigateur qui offre une fonction similaire, mais privoxy fonctionnait très bien pour ce cas d'utilisation.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X