Можно ли отключить пользовательские сочетания клавиш Javascript в Safari?

У меня есть опыт использования Emacs в течение нескольких десятилетий, поэтому сочетания клавиш, подобные Emacs, для редактирования текста в Mac OS X очень удобны. К сожалению, некоторые веб-сайты (гм) предпочитают переопределять их с помощью Javascript. Например, один из них заставляет controlBвставить текст **strong text**, а не вернуться на один символ назад.

Есть ли способ заставить Safari игнорировать сочетания клавиш Javascript, которые пытаются переназначить стандартные сочетания клавиш OS X?

Я не знаю какого-либо общего способа сделать это, но вы можете использовать GreaseKit, чтобы отключить ярлыки WMD. См. Есть ли способ отключить горячие клавиши? - Переполнение мета-стека .
Спасибо за ссылку! Разочаровывает то, что они думают, что все в порядке только потому, что люди мало жалуются. (Я использую сайты SE в течение многих лет, и я не понимал, что мне нужно начать жаловаться в первый день, чтобы мой голос был услышан.) Однако я не решаюсь добавлять какие-либо расширения веб-браузера, начиная с первой части любой диагноз проблемы с веб-браузером - «отключить все расширения».
Я с Кеном. Я лично не могу сосчитать, сколько раз мне приходилось использовать «отменить», потому что мои руки забыли, что я был на сайте SE: S
Я собирался предложить вам отключить javascript... Это решило вашу проблему, но создало новую — я больше не мог оставлять комментарии на StackExchange... =P
Это вопрос о сайте здесь? или об отключении javascript везде? Я мог бы переместить его в нашу мету в качестве отчета об ошибке, но на этом сайте уже есть несколько запросов. meta.stackexchange.com/questions/3245/…
Прошло некоторое время с тех пор, как я использовал его, но прокси-сервер Privoxy ( privoxy.org ) имеет функцию изменения javascript для изменения поведения. Если вы хотите запустить прокси-сервер, это вариант. Возможно, есть более современная реализация в виде плагина для браузера, предоставляющего аналогичную функцию?
@timb Я бы сказал, давай, ответь. +50 для захвата и в худшем случае, появляется лучший ответ (вместо редактирования, чтобы помочь вашему началу ответа). Мы продолжаем почти год без единого ответа, так что даже частичный ответ поможет.

Ответы (2)

Вот скрипт Роба В. из meta , обновленный, чтобы блокировать только cntrl-*, и исправленный, чтобы он работал с NinjaKit, который является расширением Safari для запуска пользовательских скриптов.

НиндзяКит: https://github.com/os0x/NinjaKit

Скрипт:

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

Прошло некоторое время с тех пор, как я использовал его, но прокси- сервер Privoxy имеет функцию изменения javascript для изменения поведения. Если вы хотите запустить прокси-сервер, это вариант.

Я просмотрел (хотя и не исчерпывающе) и не увидел плагина для браузера, который бы переписывал контент (xml, html, CSS или javascript), как это делает privoxy. На веб-странице Privoxy найдите фильтр js-annoyances. Здесь вы найдете примеры переписывания javascript.

Возможно, есть более современная реализация в виде плагина для браузера, который предоставляет аналогичную функцию, но privoxy отлично работал в этом случае.