Có thể vô hiệu hóa các phím bấm Javascript tùy chỉnh trong Safari không?


14

Tôi có một vài thập kỷ kinh nghiệm sử dụng Emacs, vì vậy các phím bấm giống như Emacs để chỉnh sửa văn bản trên Mac OS X rất hay. Thật không may, một số trang web (ahem) chọn ghi đè những trang này bằng Javascript. Ví dụ, một trong số họ thực hiện controlBchèn văn bản **strong text**, thay vì quay lại một ký tự.

Có cách nào để khiến Safari bỏ qua các keybindings Javascript cố gắng ánh xạ lại các keybindings OS X tiêu chuẩn không?


Tôi không biết bất kỳ cách chung nào để làm điều đó, nhưng bạn có thể sử dụng GreasKit để tắt các phím tắt WMD. Xem Có cách nào để vô hiệu hóa các phím nóng không? - Meta Stack tràn .
Lri

Cảm ơn các liên kết! Thật là bực bội khi thấy họ nghĩ rằng nó ổn chỉ vì mọi người đã không phàn nàn đủ. (Tôi đã sử dụng các trang SE trong nhiều năm và tôi không nhận ra mình cần phải bắt đầu phàn nàn vào ngày 1 để nghe giọng nói của mình.) mọi chẩn đoán sự cố trình duyệt web là "vô hiệu hóa tất cả các tiện ích mở rộng".
Ken

1
Tôi với Ken. Cá nhân tôi không thể đếm được bao nhiêu lần tôi đã phải sử dụng "hoàn tác" vì tay tôi quên tôi đang ở trên một trang SE: S
ephsmith

Tôi sẽ đề nghị bạn có thể vô hiệu hóa javascript ... Nó đã khắc phục vấn đề của bạn, nhưng nó đã tạo ra một vấn đề mới - Tôi không còn có thể đăng bình luận trên StackExchange ... = P
daviewales

1
Là câu hỏi về trang web ở đây? hoặc về việc vô hiệu hóa javascript ở mọi nơi? Tôi có thể chuyển nó đến meta của chúng tôi dưới dạng báo cáo lỗi, nhưng đã có một vài yêu cầu cho trang web này. meta.stackexchange.com/questions/3245/ Mạnh
bmike

Câu trả lời:


7

Đây là tập lệnh của Rob W từ meta , được cập nhật thành chỉ chặn cntrl- * và được sửa để nó hoạt động với NinjaKit, một phần mở rộng safari để chạy tập lệnh người dùng.

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

Kịch bản:

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

Đã được một thời gian kể từ khi tôi sử dụng nó, nhưng máy chủ proxy Privoxy có tính năng sửa đổi javascript để thay đổi hành vi. Nếu bạn sẵn sàng chạy một máy chủ proxy, đó là một tùy chọn.

Tôi đã xem (mặc dù không hoàn toàn) và không thấy một plugin trình duyệt viết lại nội dung (xml, html, CSS hoặc javascript) như privateoxy. Trong trang web của Privoxy, hãy tìm bộ lọc js-phiền toái. Đó là nơi bạn sẽ tìm thấy các ví dụ về việc viết lại javascript.

Có lẽ có một triển khai hiện đại hơn dưới dạng một plugin trình duyệt cung cấp một tính năng tương tự, nhưng privateoxy được sử dụng để hoạt động tốt cho trường hợp sử dụng này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.