У меня есть опыт использования Emacs в течение нескольких десятилетий, поэтому сочетания клавиш, подобные Emacs, для редактирования текста в Mac OS X очень удобны. К сожалению, некоторые веб-сайты (гм) предпочитают переопределять их с помощью Javascript. Например, один из них заставляет controlBвставить текст **strong text**
, а не вернуться на один символ назад.
Есть ли способ заставить Safari игнорировать сочетания клавиш Javascript, которые пытаются переназначить стандартные сочетания клавиш OS X?
Вот скрипт Роба В. из 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 отлично работал в этом случае.
Лри
Кен
эфсмит
давивалес
bmike
Тим Б.
bmike