ویژگی 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