È possibile disabilitare le combinazioni di tasti JavaScript personalizzate in Safari?

14

Ho un paio di decenni di esperienza nell'uso di Emacs, quindi le combinazioni di tasti simili a Emacs per l'editing di testo su Mac OS X sono molto belle. Sfortunatamente, alcuni siti web (ahem) scelgono di sovrascriverli con Javascript. Ad esempio, uno di essi rende control B inserisce il testo **strong text** , piuttosto che tornare indietro di un carattere.

C'è un modo per fare in modo che Safari ignori le associazioni di tasti Javascript che tentano di rimappare le combinazioni di tasti standard di OS X?

    
posta Ken 13.08.2012 - 18:11
fonte

2 risposte

7

Ecco lo script di Rob W da meta , aggiornato solo per bloccare cntrl- * e corretto in modo che funzioni con NinjaKit che è un'estensione safari per l'esecuzione di script utente.

NinjaKit: link

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);
    }
})();
    
risposta data 05.05.2013 - 05:18
fonte
1

È passato un po 'di tempo da quando l'ho usato, ma il server proxy Privoxy ha la funzione di modificare javascript per modificare il comportamento. Se sei disposto a eseguire un server proxy, questa è un'opzione.

Ho guardato (anche se non in modo esaustivo), e non ho visto un plug-in del browser che ha riscritto il contenuto (xml, html, CSS o javascript) come privoxy. Nella pagina web di Privoxy, cerca il filtro js-fastidi. È qui che troverai esempi di riscrittura di javascript.

Forse esiste un'implementazione più moderna sotto forma di un plug-in del browser che fornisce una funzionalità simile, ma privoxy utilizzato per funzionare correttamente per questo caso d'uso.

    
risposta data 02.05.2013 - 14:06
fonte

Leggi altre domande sui tag