2015-02-24 28 views
5

Tüm sayfalar için dinamik olarak klavye kısayolları oluşturabileceğimiz C# kullanarak bir Asp.net MVC4 web uygulaması oluşturdum.Ve bu klavye kısayollarını belirli bir sayfaya gitmek için anında kullanabiliriz.Ve sorun klavye kısayolunu CTRL + bu benim kendi özel sayfaya yönlendirme gereken bir oluşturursanız her tarayıcı kendi varsayılan shortcuts.For örnekTarayıcı kısayollarını kendi özel kısayollarımla değiştir

olması. Ancak, varsayılan tarayıcı kısayolu CTRL + A, sayfadan tümünü seçer.

Kendi özel kısayollarıma öncelik vermek için varsayılan tarayıcı kısayollarını devre dışı bırakmak istiyorum. Bunları başarmak için bunu herhangi bir şekilde kullanabilirmiyim? Özel kısayollarım için jquery keyUp olayını kullandım. İnternette arama yaptım, jquery keyUp olayında öneri var, preventDefault() kullanın.Ancak kendi özel kısayollarıma erişmek için keyUp olayını kullanıyorum.Örnekleri devre dışı bırakmak için önerilerinizi söyleyin Tüm tarayıcılarda C#, jquery veya başka bir şekilde tarayıcı kısayolları.

+0

Bunun mümkün olmadığından eminim, en azından tüm tarayıcılarda güvenilir bir şekilde çalışmaz. 'Keydown'u kullanarak önemli olayları dinleyebilir ve CTRL'nin basılıp basılmadığını görmek için olayı kontrol edebilirsiniz, ancak tarayıcı kromu JS'de yaptığınız tüm kısayolları geçersiz kılar. –

cevap

6

Bu Bunu sağlayacak: Ctrl + A için

e.ctrlKey && String.fromCharCode(kc).toUpperCase() 

çekler basılması için.

$(document).on('keydown', function(e) { 
 
    var kc = e.which || e.keyCode; 
 

 
    if (e.ctrlKey && String.fromCharCode(kc).toUpperCase() == "A") { 
 
    e.preventDefault(); 
 
    console.log(String.fromCharCode(kc).toUpperCase()); 
 
    window.location.href = 'your url here'; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
adfasfasdfsda
Odaklanmayı belgede tıklamalısınız ve sonra bunu test edebilirsiniz.

+0

Ctrl + F1 kısayolum key.but ise IE varsayılan olarak, yeni IE tarayıcısını açıyor. Bu kodu denedim ama yine de kullanmam. – venki

+0

Cevabınız ctrl + A, ctrl + P ... gibi kısayol tuşlarına ulaşmak için yararlıdır ancak ctrl + F1 ila F12 veya alt + F1 ila F12 veya shift + F1 ila F12'ye geldiğinde, bu şeylere ulaşamıyorum. – venki

-1

Prosedür doğruydu. Sanırım bu tür şeyleri manipüle etmek için ascii değerlerini kullanabilirsiniz: örneğin enter tuşuna basmak için kullanıyorum.

$('body').on('keypress', '#Selector-Id', function(e) { 
if (e.which == 13) { 
alert("Hi"); 
} 
}); 
+0

Bu kodda '.scratch-input' nedir? – venki

+0

Sadece ascii kodlarını kontrol için bul ve a ve 13 yerine bu değerleri ver (bu tuşa ascii kodunu gir) ve sanırım ona yardım et! – Ila

İlgili konular