JavaScript: مفاتيح مختلفة على متصفحات مختلفة؟

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

  •  28-09-2019
  •  | 
  •  

سؤال

لذلك رأيت بعض منشورات المنتديات حول المتصفحات المختلفة التي تبلغ عن اختلاف المشاعر الرئيسية ، ولكن يبدو أن الجميع يتجنبون "لماذا؟".

كنت أحاول التقاط القولون (:) keycode وأدركت أن Firefox تقارير E.KeyCode 56. بينما تقارير Chrome مرة أخرى 186 (أعتقد أن هذا ما كان عليه).

هل هناك طريقة UNIVERAL للحصول على رمز المفاتيح المناسب عبر جميع المتصفحات؟

ولماذا يختلفون إذا كانت نفس المفاتيح؟

سأكون أكثر فضولًا حول ما إذا كانت هناك طريقة دولية للحصول على نفس الصحافة الرئيسية.

شكرًا.

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

المحلول

نرى http://unixpapa.com/js/key.html للحصول على شرح لماذا لديهم مفاتيح مختلفة. لا أعرف طريقة دولية لمطابقة المفاتيح.

نصائح أخرى

يعتمد ذلك على ما إذا كنت مهتمًا بالمفتاح الفعلي الذي ضغط عليه المستخدم أو الشخصية التي كتبها المستخدم. إذا كانت هذه هي الشخصية التي تتبعها ، فيمكنك الحصول على ذلك بشكل موثوق في جميع المتصفحات الرئيسية (باستخدام keypress الحدث which الممتلكات في معظم المتصفحات أو keyCode في IE <= 8) ، ولكن فقط في keypress حدث. إذا كنت بعد المفتاح ، استخدم keydown أو keyup الحدث وفحص keyCode الخاصية ، على الرغم من أن تعيينات الرمز المفاتيح الدقيق تختلف إلى حد ما بين المتصفحات.

يمكن الاطلاع على شرح ممتاز ومرجع لجميع الأحداث المتعلقة بمفاتيح JavaScript http://unixpapa.com/js/key.html.

لاكتشاف المستخدم الذي يكتب حرف القولون بشكل موثوق في جميع المتصفحات الرئيسية ، يمكنك القيام بما يلي:

document.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode && String.fromCharCode(charCode) == ":") {
        alert("Colon!");
    }
};

هذا سؤال قديم. الطريقة الحديثة للقيام بذلك هي استخدام الحدث. نرى مفتاح MDN

أعتقد أنه يجب عليك جعل JavaScript للحصول على رمز المفاتيح للشخصية: "، وبالتالي فإن البرنامج النصي سيعرف ما هو في بيئة معينة. تم طرح سؤال مماثل هنا ، في Stackoverflow.

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