سؤال

أنا أكتب طلبًا أحتاج إلى محاكاة نص. الطريقة الوحيدة التي أعرف بها كيفية الاقتراب هي التقاط رمز المفاتيح في حدث رئيسي. كيف يمكن للمرء أن يتخذ رمز المفاتيح هذا ، ودعم UTF-8 ، تطبيقه على القماش؟

هتافات

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

المحلول

يبدو أن هذه فكرة سيئة لأن هناك الكثير من المدخلات النصية التي تمنحكها Textarea مجانًا (Caret ، الاختيار ، القطع ، لصقها ، السحب ، معالجة مفاتيح الأسهم ، إلخ) ، ولكن هنا شيئان أنت تحتاج إلى القيام :

  1. إعطاء الخاص بك <canvas> أ tabindex تنسب حتى يتلقى التركيز وبالتالي رفع الأحداث الرئيسية ؛
  2. أضف 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؟ إنه أكثر من مجرد استبدال نص ، لكنه يفعل بشكل أساسي ما تريد. يمكنك بالتأكيد النظر في الكود والوثائق ، أو إذا كان يناسب احتياجاتك ، فقط استخدمه.

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