Czy można wyłączyć niestandardowe skróty klawiszowe JavaScript w Safari?

14

Mam kilkadziesiąt lat doświadczenia w korzystaniu z Emacsa, więc podobne do Emacsa skróty klawiszowe do edycji tekstu w Mac OS X są bardzo miłe. Niestety niektóre strony internetowe (ahem) decydują się zastąpić je JavaScript. Na przykład jeden z nich powoduje controlBwstawienie tekstu **strong text**zamiast cofania o jeden znak.

Czy istnieje sposób, aby Safari zignorowało skróty JavaScript, które próbują zmienić mapowanie standardowych skrótów OS X?

Rozpoznać
źródło
Nie znam żadnego ogólnego sposobu, aby to zrobić, ale możesz użyć GreaseKit, aby wyłączyć skróty WMD. Zobacz Czy istnieje sposób na wyłączenie skrótów klawiszowych? - Przepełnienie stosu meta .
Lri
Dzięki za link! To frustrujące, gdy uważają, że to w porządku tylko dlatego, że ludzie nie narzekali wystarczająco. (Korzystam z witryn SE od lat i nie zdawałem sobie sprawy, że muszę zacząć narzekać od pierwszego dnia, aby mój głos został usłyszany). Nie mogę jednak dodać żadnych rozszerzeń przeglądarki od pierwszej części każda diagnoza problemu przeglądarki „wyłącza wszystkie rozszerzenia”.
Ken
1
Jestem z Kenem. Ja osobiście nie mogę policzyć, ile razy musiałem używać funkcji „cofnij”, ponieważ moje ręce zapomniały, że byłem na stronie SE: S
ephsmith
Chciałem zasugerować, że możesz wyłączyć javascript ... Naprawiłem twój problem, ale stworzyłem nowy - nie mogłem już publikować komentarzy na StackExchange ... = P
daviewales
1
Czy to pytanie dotyczy strony? lub o wyłączaniu wszędzie javascript? Mógłbym przenieść go do naszej meta jako raport o błędzie, ale jest już kilka próśb o tę stronę. meta.stackexchange.com/questions/3245/…
bmike

Odpowiedzi:

7

Oto skrypt Roba z meta , zaktualizowany tak, aby blokował tylko cntrl- * i naprawiony, dzięki czemu działa z NinjaKit, który jest rozszerzeniem safari do uruchamiania skryptów użytkownika.

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

Scenariusz:

// ==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
źródło
1

Minęło trochę czasu, odkąd go użyłem, ale serwer proxy Privoxy ma funkcję modyfikowania javascript w celu zmiany zachowania. Jeśli chcesz uruchomić serwer proxy, jest to opcja.

Patrzyłem (choć nie wyczerpująco) i nie widziałem wtyczki przeglądarki, która przepisała zawartość (xml, html, CSS lub javascript) tak jak robi to privoxy. Na stronie internetowej Privoxy poszukaj filtru js-annoyances. Tam znajdziesz przykłady przepisywania javascript.

Być może istnieje bardziej nowoczesna implementacja w postaci wtyczki do przeglądarki, która zapewnia podobną funkcję, ale prywatność działała dobrze w tym przypadku użycia.

Tim B.
źródło