ویژگی which رویداد KeyboardEvent

تعریف و استفاده

ویژگی which به ترتیب ایجاد شده است رویداد onkeypress کد کاراکتر Unicode برای کلیدی که رویداد را ایجاد کرده است، یا onkeydown یا onkeyup کد کلید Unicode برای کلیدی که رویداد را ایجاد کرده است

تفاوت بین دو نوع کد:

  • کد کاراکتر - عددی که نمایانگر کاراکتر ASCII است
  • کد کلید - عددی که نمایانگر کلید واقعی کلیدبورد است

این نوع‌ها همیشه به معنای یک چیز نیستند. به عنوان مثال، کلیدهای کوچک "w" و بزرگ

توجه:برای اینکه بفهمید آیا کاربر کلید قابل چاپی (مثلاً "a" یا "5") را فشار داده است، توصیه می‌شود از این ویژگی در رویداد onkeypress استفاده کنید. برای اینکه بفهمید آیا کاربر کلید عملیاتی (مثلاً "F1"، "CAPS LOCK" یا "Home") را فشار داده است، از رویدادهای onkeydown یا onkeyup استفاده کنید.

نکته:نسخه‌های IE8 و قبل از آن ویژگی which را پشتیبانی نمی‌کنند. برای این نسخه‌ها می‌توانید از ویژگی keyCode استفاده کنید. اما ویژگی keyCode در رویداد onkeypress مرورگر Firefox کار نمی‌کند. برای راه‌حل چند مرورگری می‌توانید از کد زیر استفاده کنید:

var x = event.which || event.keyCode;  // استفاده از which یا keyCode بستگی به پشتیبانی مرورگر دارد

توجه:برای لیست تمامی حروف Unicode، لطفاً به مرجع کامل Unicode.

توجه:برای تبدیل مقدار Unicode به حرف، از مетод fromCharCode().

نکته:این ویژگی فقط خواندنی است.

نکته:keyCode و ویژگی which برای سازگاری ارائه شده‌اند. نسخه‌های جدید‌تر استاندارد رویدادهای DOM پیشنهاد می‌کنند که از ویژگی key استفاده شود (اگر قابل دسترسی باشد).

توجه:اگر می‌خواهید بدانید که آیا در زمان وقوع رویداد کلیدهای "ALT"، "CTRL"، "META" یا "SHIFT" فشرده شده‌اند یا خیر، از altKeyوctrlKeyوmetaKey یا shiftKey ویژگی‌ها.

مثال

برای دریافت مقدار Unicode کلید فشرده شده استفاده کنید:

var x = event.which;

در پایین صفحه نمونه‌های بیشتری از TIY وجود دارد.

به طور مستقیم امتحان کنید

زبان سمت مشتری

event.which

جزئیات فنی

مقدار بازگشتی: مقدار عددی، نشان‌دهنده کد حروف Unicode یا کد کلیدهای صفحه کلید Unicode است.
نسخه DOM: DOM Level 2 Events

پشتیبانی مرورگر

اعداد در جدول نشان‌دهنده نسخه اولین مرورگر هستند که از این ویژگی کامل پشتیبانی می‌کند.

ویژگی‌ها Chrome IE Firefox Safari Opera
which پشتیبانی 9.0 پشتیبانی پشتیبانی پشتیبانی

مثال‌های بیشتر

مثال

برای نمایش تفاوت بین کد حروف و کد کلیدهای صفحه کلید از onkeypress و onkeydown استفاده می‌شود:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode برای نسخه‌های IE8 و قدیمی‌تر استفاده می‌شود
  document.getElementById("demo").innerHTML = "کد CHARACTER Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode برای نسخه‌های IE8 و قدیمی‌تر استفاده می‌شود
  document.getElementById("demo2").innerHTML = "کد KEY Unicode: " + key;
}

وقتی که کاربر کلید "a" را روی صفحه‌کلید فشار می‌دهد (بدون استفاده از Capslock)، نتایج char و key خواهد بود:

کد CHARACTER Unicode: 97
کد KEY Unicode: 65

به طور مستقیم امتحان کنید

مثال

اگر کاربر کلید Escape را فشار دهد، یک متنی نمایش داده شود:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode برای نسخه‌های IE8 و قدیمی‌تر استفاده می‌شود
  if (x == 27) {  // 27 کلید ESC است
    alert ("شما کلید Escape را فشار دادید!");
  }
}

به طور مستقیم امتحان کنید

مثال

تبدیل مقدار Unicode به کاراکتر (برای کلیدهای عملیتی مناسب نیست):

var x = event.which || event.keyCode;   // دریافت مقدار Unicode
var y = String.fromCharCode(x);         // تبدیل مقدار به کاراکتر

به طور مستقیم امتحان کنید

صفحات مرتبط

دستورالعمل HTML DOM:ویژگی key رویداد KeyboardEvent

دستورالعمل HTML DOM:ویژگی keyCode رویداد KeyboardEvent

دستورالعمل HTML DOM:ویژگی charCode رویداد KeyboardEvent