È 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 questi fa controlBinserire il testo **strong text**, anziché tornare indietro di un carattere.

Esiste un modo per fare in modo che Safari ignori i collegamenti dei tasti Javascript che provano a rimappare i collegamenti dei tasti OS X standard?


Non conosco alcun modo generale per farlo, ma potresti usare GreaseKit per disabilitare le scorciatoie WMD. Vedi Esiste un modo per disabilitare i tasti di scelta rapida? - Meta Stack Overflow .
Lri,

Grazie per il link! È frustrante vedere che pensano che vada bene solo perché la gente non si è lamentata abbastanza. (Uso i siti SE da anni e non mi rendevo conto che dovevo iniziare a lamentarmi il primo giorno perché la mia voce fosse ascoltata.) Sono titubante ad aggiungere eventuali estensioni del browser Web, tuttavia, dalla prima parte di qualsiasi diagnosi del problema del browser Web è "disabilita tutte le estensioni".
Ken,

1
Sono con Ken. Personalmente non posso contare quante volte ho dovuto usare "annulla" perché le mie mani si sono dimenticate di essere su un sito SE: S
ephsmith

Stavo per suggerire che potevi disabilitare javascript ... Risolveva il tuo problema, ma ne creava uno nuovo - Non potevo più pubblicare commenti su StackExchange ... = P
daviewales

1
Questa domanda sul sito è qui? o sulla disabilitazione di javascript ovunque? Potrei spostarlo sul nostro meta come segnalazione di bug, ma ci sono già diverse richieste per questo sito. meta.stackexchange.com/questions/3245/…
bmike

Risposte:


7

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

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



1

È da un po 'che non lo uso, ma il server proxy Privoxy ha la funzione di modificare javascript per cambiare comportamento. Se sei disposto a eseguire un server proxy, questa è un'opzione.

Ho fatto un aspetto (anche se non esaustivo) e non ho visto un plug-in del browser che riscrivesse i contenuti (xml, html, CSS o javascript) come fa privoxy. Nella pagina Web di Privoxy, cerca il filtro js-annoyances. Ecco dove troverai esempi di riscrittura di JavaScript.

Forse esiste un'implementazione più moderna sotto forma di un plug-in del browser che fornisce una funzione simile, ma privoxy funzionava bene per questo caso d'uso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.