Possible de désactiver les raccourcis clavier Javascript personnalisés dans Safari?


14

J'ai une vingtaine d'années d'expérience avec Emacs, donc 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 Javascript. Par exemple, l'un d'eux fait controlBinsérer le texte **strong text**, plutôt que de reculer d'un caractère.

Existe-t-il un moyen de faire en sorte que Safari ignore les raccourcis clavier Javascript qui tentent de remapper les raccourcis clavier OS X standard?


Je ne connais aucun moyen général de le faire, mais vous pouvez utiliser GreaseKit pour désactiver les raccourcis WMD. Voir Existe - t-il un moyen de désactiver les raccourcis clavier? - Débordement de pile Meta .
Lri

Merci pour le lien! C'est frustrant de voir qu'ils pensent que ça va juste parce que les gens ne se plaignent pas assez. (J'utilise des sites SE depuis des années et je ne savais pas que je devais commencer à me plaindre le premier jour pour que ma voix soit entendue.) Cependant, j'hésite à ajouter des extensions de navigateur Web depuis la première partie de tout diagnostic de problème de navigateur Web est «désactiver toutes les extensions».
Ken

1
Je suis avec Ken.
Personnellement,

J'allais suggérer que vous pourriez désactiver javascript ... Il a résolu votre problème, mais il en a créé un nouveau - je ne pouvais plus poster de commentaires sur StackExchange ... = P
daviewales

1
Est-ce que cette question concerne le site ici? ou sur la désactivation de javascript partout? Je pourrais le déplacer dans notre méta en tant que rapport de bogue, mais il y a déjà plusieurs demandes pour ce site à l'échelle. meta.stackexchange.com/questions/3245/…
bmike

Réponses:


7

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 des scripts utilisateur.

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

Scénario:

// ==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);
    }
})();



1

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

J'ai regardé (mais pas de manière exhaustive), et je n'ai pas vu de plugin de navigateur qui a réécrit le contenu (xml, html, CSS ou javascript) comme le fait privoxy. Dans la page Web de Privoxy, recherchez le filtre js-ennuis. 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 plug-in de navigateur qui fournit une fonctionnalité similaire, mais privoxy fonctionnait bien dans ce cas d'utilisation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.