Можливо відключити власні клавіші Javascript у Safari?


14

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

Чи є спосіб змусити Safari ігнорувати прив'язки клавіш Javascript, які намагаються перевстановити стандартні клавіші OS X?


Я не знаю жодного загального способу зробити це, але ви можете використовувати GreaseKit, щоб вимкнути ярлики WMD. Див. Чи є спосіб відключити гарячі клавіші? - Meta Stack Overflow .
Лрі

Дякуємо за посилання! Прикро бачити, що вони думають, що це добре лише тому, що люди не скаржилися достатньо. (Я використовую сайти SE протягом багатьох років, і я не розумів, що потрібно починати скаржитися в перший день, щоб мій голос був почутий.) Я не вагаюся додавати будь-які розширення веб-браузера, хоча з першої частини будь-яка діагностика проблеми веб-браузера - "відключити всі розширення".
Кен

1
Я з Кеном. Я особисто не можу підрахувати, скільки разів мені доводилося користуватися "скасувати", тому що руки забули, що я був на сайті SE: S
ephsmith

Я збирався запропонувати вам вимкнути javascript ... Це вирішило вашу проблему, але це створило нове - я вже не міг публікувати коментарі до StackExchange ... = P
daviewales

1
Це питання щодо сайту тут? чи про відключення JavaScript скрізь? Я міг би перенести це на наш мета як повідомлення про помилку, але на цьому сайті вже є кілька запитів. meta.stackexchange.com/questions/3245/…
bmike

Відповіді:


7

Ось сценарій Роб 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);
    }
})();



1

Минув час, коли я ним користувався, але проксі-сервер Privoxy має можливість змінювати javascript, щоб змінити поведінку. Якщо ви готові запустити проксі-сервер, це варіант.

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

Можливо, є більш сучасна реалізація у вигляді плагіна веб-переглядача, який надає подібну функцію, але privoxy використовується для роботи в цьому випадку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.