كيفية اكتشاف أنه تم الضغط على Ctrl+R؟
سؤال
أقوم بترميز وظيفة في jQuery تنفذ إذا كنترول+ص يتم الضغط عليه ولكن لا يمكنني معرفة ما هي رموز مفاتيح Ctrl اليمنى واليسرى ... هل يمكن لشخص ما المساعدة؟
تحديث
///this works
$(document).keydown(function(e){
if(e.keyCode==17){alert("control was pressed")};
});
السؤال التالي- كيف يمكنني ربط مفتاح التحكم وضغط مفتاح آخر لتنفيذ وظيفة؟
if(e.keyCode==17){llCtrlPress=1};
if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING}
????????????
يبدو أن هذا سيعمل بشكل جيد ، لكن كيف يمكنني تعيين LLCTRLPRESS إلى "0" على Keyup؟
المحلول
عليك استخدام زر أسفل وظيفة لفخ كنترول الشخصيات. ها هو تنفيذي ل كنترول+أ:
$(document).keydown(function(e) {
if (e.keyCode == 65 && e.ctrlKey) {
alert('ctrl A');
}
});
Ctrl-R أكثر صرامة لأنه في معظم المتصفحات ، هذا هو إعادة تحميل الصفحة, ، مما يعني أن JavaScript لا يتم تشغيله ، يتم تحديث الصفحة.
مجرد ملاحظة كذلك ، رمز المفتاح تختلف القيمة في وظائف keydown/keyupup عن وظائف keypress.
تعديل: تم إزالة متغير Ctrl ، نسيت Ctrlkey
نصائح أخرى
هنا هي قائمة كاملة من الرموز الرئيسية التي يمكنك استخدامها.
هذا هو الرمز الذي أستخدمه لتعطيل التحديث على IE و Firefox (هذا يعمل بشكل جيد F5, كنترول+F5 و كنترول+ص)
<script language="javascript" type="text/javascript">
//this code handles the F5/Ctrl+F5/Ctrl+R
document.onkeydown = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event)
keycode = window.event.keyCode;
else if (e)
keycode = e.which;
// Mozilla firefox
if ($.browser.mozilla) {
if (keycode == 116 ||(e.ctrlKey && keycode == 82)) {
if (e.preventDefault)
{
e.preventDefault();
e.stopPropagation();
}
}
}
// IE
else if ($.browser.msie) {
if (keycode == 116 || (window.event.ctrlKey && keycode == 82)) {
window.event.returnValue = false;
window.event.keyCode = 0;
window.status = "Refresh is disabled";
}
}
}
</script>
إذا كنت لا ترغب في استخدام useragent لاكتشاف نوع المتصفح الذي هو ($. Browser يستخدم navigator.useragent لتحديد النظام الأساسي) ، يمكنك استخدام
if('MozBoxSizing' in document.documentElement.style)
- يعود صحيح ل Firefox
لماذا لا تستخدم e.ctrlKey
?
if (e.keyCode == 65 && e.ctrlKey) {
alert('ctrl A');
}
تحرير: إليك وظيفة مناسبة للكشف عن Keypress CTRL-R الخاصة بك وإيقاف المتصفح من إعادة التحميل.
function keydown(e) {
if (e.ctrlKey && e.keyCode == 82) {
// 82 = r
// TODO: your thing.
if (e.preventDefault) {
e.preventDefault();
}
else {
return false;
}
}
}
أنا مبتدئ jQuery ، أعتقد أنك ستفعل
$(document).keydown(keydown);
الصحيح؟
هناك خاصية منطقية تسمى ctrlKey
يجب أن تكون قادرًا على استخدامه هنا ...
$(document).keypress(function(e) {
alert("Ctrl is pressed: " + e.ctrlKey);
});
يستخدم event.key
و JS الحديثة!
$(document).keypress(function(event) {
if (event.key === "r" && event.ctrlKey) {
// Do something
}
});
أو بدون jQuery:
document.addEventListener("keypress", function onEvent(event) {
if (event.key === "r" && event.ctrlKey) {
// Do something better
}
});
$(document).ready(function () {
$(document).keyup(function (e) {
if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q
alert("CTRL+Q");
} else if (e.keyCode == 27) { //ESCAPE
alert("escape");
} else if (e.keyCode == 67 && e.altKey) { // ALT+C
alert("ALT+C");
}
});
});
رمز المفتاح ل كنترول المفتاح هو 11
.
$(document).keypress(function(e) {
alert("Ctrl is pressed: " + e.ctrlKey);
});
@HostListener('window:keydown', ['$event'])
keyEvent(event: KeyboardEvent) {
if (event.ctrlKey && event.keyCode == 82)
{
}
}
يمكننا أيضًا استخدام رمز ASCII للعثور على الأحرف وكذلك الأحرف
$('html').keydown(function (e) {
keydownfunc(e);
});
function keydownfunc(e) {
if (e.ctrlKey && (e.key === "r" || e.key === "R")) {
alert("ctrl+R");
}
}