Kemungkinan untuk menonaktifkan ikatan kunci Javascript khusus di Safari?

14

Saya memiliki beberapa dekade pengalaman menggunakan Emacs, jadi keybindings seperti Emacs untuk mengedit teks pada Mac OS X sangat bagus. Sayangnya, beberapa situs web (ahem) memilih untuk menimpanya dengan Javascript. Sebagai contoh, salah satu dari mereka membuat controlBmenyisipkan teks **strong text**, daripada kembali satu karakter.

Apakah ada cara untuk membuat Safari mengabaikan Javascript keybindings yang mencoba memetakan kembali standar OS X keybindings?

Ken
sumber
Saya tidak tahu cara umum untuk melakukan itu, tetapi Anda bisa menggunakan GreaseKit untuk menonaktifkan pintasan WMD. Lihat Apakah ada cara untuk menonaktifkan hotkey? - Meta Stack Overflow .
Lri
Terima kasih untuk tautannya! Sangat frustasi melihat bahwa mereka pikir itu baik-baik saja hanya karena orang tidak cukup mengeluh. (Saya telah menggunakan situs SE selama bertahun-tahun dan saya tidak menyadari bahwa saya perlu mulai mengeluh pada hari 1 agar suara saya didengar.) Namun, saya ragu untuk menambahkan ekstensi browser web, sejak bagian pertama dari diagnosis masalah peramban web adalah "nonaktifkan semua ekstensi".
Ken
1
Saya dengan Ken. Saya pribadi tidak dapat menghitung berapa kali saya harus menggunakan "undo" karena tangan saya lupa saya berada di situs SE: S
ephsmith
Saya akan menyarankan agar Anda dapat menonaktifkan javascript ... Ini memperbaiki masalah Anda, tetapi itu menciptakan yang baru - Saya tidak lagi dapat memposting komentar di StackExchange ... = P
daviewales
1
Apakah pertanyaan ini tentang situs di sini? atau tentang menonaktifkan javascript di mana-mana? Saya bisa memindahkannya ke meta kami sebagai laporan bug, tetapi sudah ada beberapa permintaan untuk situs ini. meta.stackexchange.com/questions/3245/…
bmike

Jawaban:

7

Berikut ini skrip Rob W dari meta , diperbarui hanya untuk memblokir cntrl- * dan diperbaiki sehingga berfungsi dengan NinjaKit yang merupakan ekstensi safari untuk menjalankan skrip pengguna.

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

Naskah:

// ==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
sumber
1

Sudah lama sejak saya menggunakannya, tetapi server proxy Privoxy memiliki fitur untuk memodifikasi javascript untuk mengubah perilaku. Jika Anda ingin menjalankan server proxy, itu adalah opsi.

Saya memang melihat (walaupun tidak secara mendalam), dan tidak melihat plugin browser yang menulis ulang konten (xml, html, CSS, atau javascript) seperti privoxy. Di halaman web Privoxy, cari filter js-annoyances. Di situlah Anda akan menemukan contoh penulisan ulang javascript.

Mungkin ada implementasi yang lebih modern dalam bentuk plugin browser yang menyediakan fitur serupa, tetapi privoxy digunakan untuk bekerja dengan baik untuk use case ini.

Tim B
sumber