Ziyaret ettiğim sayfaların seçili Firefox kısayol tuşlarını geçersiz kılmasını nasıl önlerim?


40

Firefox'ta sayfaların Javascript aracılığıyla Firefox'un yerleşik klavye kısayollarını her bir tuş temelinde geçersiz kılmalarını nasıl önleyebilirim? Tercihen site başına da mı? En sinir bozucu geçersiz kılma, "Sayfada bul" ile bağlantılı eğik çizgidir ('/'). Google arama sonuçları, Twitter zaman çizelgeleri, bazı wiki'ler ve diğer sayfalar gibi siteler, tamamen yanlış olan kendi arama kutuları için eğik çizgi anahtarını çalar.

Temsilcim soru sormamı, düzenlememi ve cevaplamamı sağlasa da yorum eklemememe izin verdiğinden, bu temelde doğru cevaplanmayan diğer iki sorunun bir kopyası:

Klavye kısayollarını geçersiz kılmak için bir web sitesini nasıl durdururum?

Firefox: web sitelerinin / (eğik çizgi) tuşunu geçersiz kılmalarına izin verme


1
PHPMyAdmin'e baskın geldiğinde ctrl- <left arrow> ... sinir bozucu kaldım - bu iyi bir soru
Highly Reregular

1
Varsayılan davranışı geçersiz kılan web sitelerine dayanamıyorum. Çok orta tıklamalar ile bunu. Bu sorunun çözümü için bu soruya bakın .
Cam Jackson

Yanıtlar:


12

Edymtt'in cevabını temel alarak, sadece belirli klavye kısayollarını devre dışı bırakan bir usercript oluşturdum. Anahtar kodları dizisine tuş kodları ekleyerek devre dışı bırakmak için daha fazla kısayol ekleyebilir veya @includeetiketi bir veya daha fazla desenle değiştirerek hangi sitelerin uygulanacağını kısıtlayabilirsiniz .

Greasemonkey kullanarak yükleyin .

// ==UserScript==
// @name           Disable keyboard shortcuts
// @description    Stop websites from highjacking keyboard shortcuts
//
// @run-at         document-start
// @include        *
// @grant          none
// ==/UserScript==

keycodes = [191] // Keycode for '/', add more keycodes to disable other key captures

document.addEventListener('keydown', function(e) {
//    alert(e.keyCode); //uncomment to find out the keycode for any given key
    if (keycodes.indexOf(e.keyCode) != -1)
    {
        e.cancelBubble = true;
        e.stopImmediatePropagation();
    }
    return false;
});

2
Müthiş! Meta anahtarlar için neredeyse eksiksiz bir çözüm --- Google Dokümanlar’ın Önceki sekme (Cmd + Sol) ve Sonraki sekmeyi (Cmd + Sağ) engellemesini engellemeye çalışıyordum ve useCapture öğesini true olarak ayarlamam gerektiğini gördüm; yani, document.addEventListener ('keydown', HandlerFn, true)
chbrown

1
değer 191ayarının klavye düzeninize bağlı olduğunu unutmayın; azerty kurulumum söz konusu olduğunda (alfa alanı için 16 + 58 ve sayısal tuş takımı için
111’im var

2
ve ne yazık ki, bugünlerde artık çalışmıyor (kişi ve twitter'da deneniyor). Özel dinleyici tetiklenir, ancak yine de sitenin etkinliği tetiklenir ve 'sayfada arama' görünmez.
sylvainulg

1
@sylvainulg Twitter'da çalışmadığını görüyorum ama en azından hala GitHub'da çalışıyor. Neyin değiştiğini merak ediyorum.
binki

Bu php.net dışında denedim her yerde çalışır. Hangi olayı kullandıklarını merak ediyorum.
qwazix

8

Google ve Hızlı Bul kısayolu ile ilgili olarak, bu Greasemonkey komut dosyasını yükleyebilirsiniz:

http://userscripts-mirror.org/scripts/show/132237

Açıklamanın dediği gibi, "google’ın her tuş basışında arama girişine odaklanmasını durdurur" - özellikle, /diğer web sitelerinde olduğu gibi, Hızlı Arama görünecektir.

Sadece koda dokunmadan kurdum, ancak diğer siteler ve / veya diğer kısayollarla çalışmak için kolayca uyarlanabileceğini düşünüyorum.


Açıklığa kavuşturmak için: bu usercript, tarayıcının kendi işlevselliğini koruyarak, etkin olduğu sayfalarda TÜM klavye kısayollarını durdurur. Bunu diğer web sitelerine uygulamak için sadece @include etiketlerini ekleyin.
MikeFHay

Bağlantının arkasına ne gizlendiğine dair herhangi bir bilgi olmadan, userscripts-mirror.org aşağıya indiğinde, bir güvenlik duvarı tarafından engellendiğinde ya da her neyse, cevap ne yazık ki işe yaramaz.
sylvainulg

8

Firefox 58’den bu yana, web sitesi başına geçersiz kılma klavye kısayollarını devre dışı bırakmak mümkündür.

"Klavye Kısayollarını Geçersiz Kıl" ve diğer birçok izin "Sayfa Bilgisi -> İzinler" te (URL çubuğundaki bilgi simgesinin altında) bulunmaktadır.

Superfox.com için Firefox İzinleri örneği

Klavye geçersiz kılma Firefox'ta tanıtıldı # 380637


1
Evet, 11 yıl sonra nihayet bu bileti tamir etmek için yarı değerli bir iş yaptılar. Maalesef mevcut uygulama (FF 59'da hala) gerçekten berbat olan Backspaceve Deletetuşlarını tamamen devre dışı bırakıyor .
Lambart

6
Ayrıca, ne yazık ki olmayan kaymış (yani hiçbir yakalayan web sayfaları engellemez Ctrl, Shiftya Altbu orijinal Soruda belirtilen eğik çizgi anahtar ile tüm yardıma değil demektir - tuşu) girişi.
Lambart

@Lambart - bilmek güzel, ben de kullanmıyorum, çünkü firefox klavye kısayolları jira ve izdihamla sabitlendi (firefox 59 civarında bir yerde)
Alec Istomin

2
ne düzeltildi Hem JIRA hem de Confluence hala iş akışımı sürekli bozan her türlü anahtarı alıyor. Bunu Atlassian'ın sorunu olarak görüyorum: İnsanların “kısayollarını” devre dışı bırakmalarına (ve / veya değiştirmelerine) izin vermeleri gerekiyor.
Lambart

firefox bugzilla.mozilla.org/show_bug.cgi?id=1433592 benim için atlassian ürünlerini tamir etti (aynı zaman diliminde atlassian düzeltmeleri olabilir)
Alec Istomin

0

İşte daha genel bir komut dosyası - devre dışı bırakmak için istediğiniz sayıda tuşa basma olayı tanımlayabilirsiniz.

https://greasyfork.org/en/scripts/5819-disable-website-keyboard-hooks

// ==UserScript==
// @name           Disable website keyboard hooks
// @description    Stop websites from hijacking keyboard shortcuts.
// @author         Isaac Levy
// @run-at         document-start
// @include        *
// @grant          none
// @version        0.0.1
// @namespace      https://isaacrlevy.com
// ==/UserScript==

var keycodes = [ // Add keycodes as desired, keep sorted.
    37, 38, 39, 40 // Arrow keys.
]

var meta_keycodes = [ // Disable these when meta key is pressed.
    70
];

// Don't change below this line.

var isMac = navigator.platform.toLowerCase().indexOf('mac') >= 0;

// Create a fast lookup.
// This saves work during normal typing. Maybe unnecessary.
var keycode_offset = keycodes[0];
var keycode_arr = Array(keycodes[keycodes.length - 1] - keycode_offset)
for (var i = 0, len = keycodes.length; i < len; i++) {
    keycode_arr[keycodes[i] - keycode_offset] = true;
}

document.addEventListener('keydown', function(e) {
    //console.log(e);
    if ((isMac && e.metaKey) || (!isMac && e.ctrlKey)) {
        if (meta_keycodes.indexOf(e.keyCode) >= 0) {
            e.stopImmediatePropagation();
        }
    } else if (keycode_arr[e.keyCode - keycode_offset]) {
        e.stopImmediatePropagation();
    }
    return false;
});

Üzgünüm - ama bunun işe yaramasını sağlayamıyorum. Özellikle bir sitede sol ve sağ ok tuşlarını devre dışı bırakmak istiyorum - ancak bu komut dosyasıyla ok tuşları hala siteyi kontrol ediyor ???
Christian Herenz,

-3

YesScript eklentisi benim için sorunsuz bir çözümdü. Sitelerin JavaScript çalıştırmasını, ancak yalnızca seçtiğiniz sitelerin çalışmasını önler. Bu siteler çoğu zaman JavaScript tarafından klavye kısayolunu ele geçirir. Bunu Ghacks.net formunda bu yazı üzerinde buldum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.