üzerindeki bu Greasemonkey komut eser https://www.github.com/ olduğunu Sayfanın yapmaya çalıştığı şeyin% 99'unu yakalayın. keydown
, keyup
, keypress
off sayfa yangınları veya bazı kombinasyonu keydown
durdurmak böylece (tipik olay kullanılır) eğer
Sen emin olamaz (Flash gibi eklentileri saymazsak) ve keyup
. Ancak, sayfa keypress
'dan çıktığında, olayın engellenmesi this kind of technique gerektirebilir. Bunun nedeni, keypress
olayının, <body>
'da, Firefox'un sayfa içi aramasını tetiklemek için yukarı kalkmasıdır, ancak bu araştırmayı javascript'ten (güvenlik için) tetiklemenin bir yolu yoktur.
Neyse ki, iki örnek siteniz herhangi bir sert önlem gerektirmez.
DOM_VK_SLASH
gibi olay sabitleri mükemmeldir, ancak yine de oldukça fazla Firefox'turlar. Bu sorunun etiketlerinden (dotjs), Chrome'da da bunun için çalışmanızın gerekip gerekmediği net değil.
Hepsini bir araya getirirsek, bu tam komut çalışır:
// ==UserScript==
// @name _Nuke the forward slash on select pages
// @include https://github.com/*
// @include https://wiki.jenkins-ci.org/*
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
//-- "true" tells the listener to use capture mode.
window.addEventListener ('keydown', blockSlashKey, true);
window.addEventListener ('keyup', blockSlashKey, true);
/*-- Don't block keypress on window or body, this blocks the default
page-search, too.
window.addEventListener ('keypress', blockSlashKey, true);
*/
function blockSlashKey (zEvent) {
var FORWARD_SLASH = 191; // For keydown and keyup
var ASCII_SLASH = 47; // For keypress
if ( zEvent.which === FORWARD_SLASH
|| (zEvent.which === ASCII_SLASH && zEvent.type == "keypress")
) {
zEvent.stopPropagation();
}
}
Not: Bu komut dosyası Chrome ve Firefox içinde, listelenen iki sitelerinde iyi iş gibi görünüyor. Ve, / yazarak girişleri veya metinleri yazmayı durdurmaz. Ancak, bazı sitelerin / anahtarındaki diğer olayları tetiklememesine neden olabilecek küçük bir şans var.
Bu olursa, blockSlashKey()
'un işlemini kısıtlamak için zEvent.target.nodeName == "BODY"
gibi denetimleri kullanın.
Hangi "dotjs" kullanıyorsunuz? Bu isimde birden fazla şey var. Bunu da Chrome'da çalıştırmaya mı çalışıyorsunuz? –