JavaScript HTML5 Capture Keycode واكتب إلى قماش
-
03-10-2019 - |
سؤال
أنا أكتب طلبًا أحتاج إلى محاكاة نص. الطريقة الوحيدة التي أعرف بها كيفية الاقتراب هي التقاط رمز المفاتيح في حدث رئيسي. كيف يمكن للمرء أن يتخذ رمز المفاتيح هذا ، ودعم UTF-8 ، تطبيقه على القماش؟
هتافات
المحلول
يبدو أن هذه فكرة سيئة لأن هناك الكثير من المدخلات النصية التي تمنحكها Textarea مجانًا (Caret ، الاختيار ، القطع ، لصقها ، السحب ، معالجة مفاتيح الأسهم ، إلخ) ، ولكن هنا شيئان أنت تحتاج إلى القيام :
- إعطاء الخاص بك
<canvas>
أtabindex
تنسب حتى يتلقى التركيز وبالتالي رفع الأحداث الرئيسية ؛ - أضف
keypress
(ليسkeydown
) معالج ل<canvas>
عنصر لالتقاط إدخال النص.
شفرة:
<canvas id="textarea" tabindex="1" width="300" height="200"></canvas>
<script type="text/javascript">
var el = document.getElementById("textarea");
el.onkeypress = function(evt) {
var charCode = evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
</script>
نصائح أخرى
باستخدام jQuery:
<div id="myTextArea></div>
$('#myTextArea').keypress(function (event) {
$('#myTextArea').append(String.fromCharCode(event.which));
});
هل رأيت bespin؟ إنه أكثر من مجرد استبدال نص ، لكنه يفعل بشكل أساسي ما تريد. يمكنك بالتأكيد النظر في الكود والوثائق ، أو إذا كان يناسب احتياجاتك ، فقط استخدمه.
لا تنتمي إلى StackOverflow