سؤال

أقوم بترميز وظيفة في 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");
   }
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top