معالجة قوية لاختصارات لوحة المفاتيح باستخدام JavaScript

StackOverflow https://stackoverflow.com/questions/611326

  •  03-07-2019
  •  | 
  •  

سؤال

ما هي الطريقة الأقوى لإنشاء معالج اختصارات لوحة المفاتيح العالمية لتطبيق ويب باستخدام JavaScript، على سبيل المثال.ما الحدث (الأحداث) الذي يجب أن أتعامل معه وما الذي يجب إرفاق معالج (معالجات) الأحداث به؟

أريد شيئًا مثل النظام في Gmail الذي يمكنه التعامل مع اختصارات الضغط الفردية وكذلك الاختصارات باستخدام مفاتيح التعديل على سبيل المثال.Ctrl + B الخيجب أن يعمل الكود في IE 6 بالإضافة إلى المتصفحات الحديثة.

لدي إطار عمل النموذج الأولي متاح للاستخدام ولكن ليس jQuery، لذا من فضلك، لا توجد إجابات خاصة بـ jQuery!

هل كانت مفيدة؟

المحلول

والمكتبة هوتكي المتاحة في حزمة الضوابط LivePipe يعمل مع النموذج وهي IE متوافقة.

http://livepipe.net/extra/hotkey

نصائح أخرى

اعتقدت أنني سأرمي آخر في هذا المزيج.لقد قمت مؤخرًا بإصدار مكتبة تسمى مصيدة الفئران.التحقق من ذلك في http://craig.is/killing/mice

نشر JimmyP هذا كتعليق، ولكنه يستحق أن يكون إجابة لأغراض التصويت.

http://www.openjs.com/scripts/events/keyboard_shortcuts/

ما أود القيام به هو إرفاق onKeyUp الأحداث إلى document.body. ثم، في هذا معالج الحدث، وأود أن استخدام الأسلوب Element.fire لإطلاق حدث مخصص . وعلى الرغم من هذه الخطوة اختيارية، وسوف يساعد في فصل معالج الحدث من الإجراءات التي يتعين القيام بها، ويمكنك استخدام نفس معالج مخصص الحدث من القول حدث نقرة زر.

$(document.body).observe("keyup", function() {
    if(/* key + modifier match */) {
        $(document.body).fire("myapp:mycoolevent");
    }
});

$(document.body).observe("myapp:mycoolevent", function() {
    // Handle event.
});

وفي وقت لاحق، لربط نفس الحدث إلى زر فوق:

$(button).observe("click", function() {
    $(document.body).fire("myapp:mycoolevent");
});

وبقدر التعامل مع مفاتيح التعديل هي المعنية، تحقق من هذا الموقع (قديمة جدا، ولكن لا تزال تبدو وجدت) لمزيد من المساعدة.

وهناك أيضا مكتبة جافا سكريبت جديدة تسمى jwerty ، انها سهلة الاستخدام ولا تعتمد على مسج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top