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

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

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

14 голосов | спросил Ken 13 PM00000080000004431 2012, 20:11:44

2 ответа


7

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

NinjaKit: 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);
    }
})();
ответил Zanson 5 Mayam13 2013, 07:18:41
1

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

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

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

ответил Tim B 2 Maypm13 2013, 16:06:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132