É possível desativar as combinações de teclas Javascript personalizadas no Safari?

14

Eu tenho algumas décadas de experiência no uso do Emacs, portanto, as combinações de teclas do tipo Emacs para edição de texto no Mac OS X são muito agradáveis. Infelizmente, alguns sites (ahem) optam por substituí-los por Javascript. Por exemplo, um deles faz controlBinserir o texto **strong text**, em vez de retornar um caractere.

Existe alguma maneira de fazer o Safari ignorar as combinações de teclas Javascript que tentam remapear as combinações de teclas padrão do OS X?

Ken
fonte
Não conheço nenhuma maneira geral de fazer isso, mas você pode usar o GreaseKit para desativar os atalhos WMD. Consulte Existe uma maneira de desativar as teclas de atalho? - Meta Stack Overflow .
Lri
Obrigado pelo link! É frustrante ver que eles acham que está tudo bem só porque as pessoas não reclamam o suficiente. (Eu uso sites de SE há anos e não sabia que precisava começar a reclamar no dia 1 para que minha voz fosse ouvida.) No entanto, hesito em adicionar qualquer extensão de navegador da Web, desde a primeira parte do qualquer diagnóstico de problema no navegador da web é "desativar todas as extensões".
Ken
1
Eu estou com Ken. Eu, pessoalmente, não posso contar quantas vezes eu tive que usar "desfazer", porque minhas mãos esqueci que estava em um site de SE: S
ephsmith
Eu ia sugerir que você pudesse desativar o javascript ... Corrigido o seu problema, mas ele criou um novo - não era mais possível postar comentários no StackExchange ... = P
daviewales 3/12/12
1
Esta pergunta está sobre o site aqui? ou sobre como desativar o javascript em qualquer lugar? Eu poderia movê-lo para nossa meta como um relatório de erro, mas já existem várias solicitações para este site. meta.stackexchange.com/questions/3245/…
bmike

Respostas:

7

Aqui está o script de Rob W da meta , atualizado para bloquear apenas cntrl- * e corrigido para que funcione com o NinjaKit, que é uma extensão de safari para a execução de scripts de usuário.

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

Roteiro:

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

Já faz um tempo desde que eu o usei, mas o servidor proxy Privoxy tem o recurso de modificar o javascript para alterar o comportamento. Se você deseja executar um servidor proxy, essa é uma opção.

Eu parecia (embora não exaustivamente) e não vi um plug-in de navegador que reescrevesse conteúdo (xml, html, CSS ou javascript) como o privoxy. Na página da web do Privoxy, procure o filtro js-aboyances. É aqui que você encontrará exemplos de reescrita de javascript.

Talvez haja uma implementação mais moderna na forma de um plug-in de navegador que forneça um recurso semelhante, mas o privoxy funcionava bem nesse caso de uso.

Tim B
fonte