কী কী অক্ষর কী টিপবে তা সন্ধান করবেন?


118

খাঁটি জাভাস্ক্রিপ্টে ক্রস-ব্রাউজারের সামঞ্জস্যপূর্ণ উপায়ে কী অক্ষর কী টিপানো হয় তা আমি জানতে চাই।


1
প্রশ্নের জন্য এই সব উত্তর নয় "কি চাবি ছিল চাপা?" কী, যদি এটি কার্যকর হয়, জাভাস্ক্রিপ্ট কোডটি জানতে চায় যে বর্তমানে কী-বোর্ডের একটি কী চেপে রাখা আছে?
mordm

2
event.keyসরাসরি চাপ দেওয়া
চরটি

উত্তর:


158

জাভাস্ক্রিপ্ট "সাফ করুন":

<script type="text/javascript">
  function myKeyPress(e){
    var keynum;

    if(window.event) { // IE                    
      keynum = e.keyCode;
    } else if(e.which){ // Netscape/Firefox/Opera                   
      keynum = e.which;
    }

    alert(String.fromCharCode(keynum));
  }
</script>

<form>
  <input type="text" onkeypress="return myKeyPress(event)" />
</form>

jQuery:

$(document).keypress(function(event){
  alert(String.fromCharCode(event.which)); 
});

6
এটি বর্ণমালার অক্ষরের জন্য ঠিক কাজ করে তবে বিন্দু / ব্রেট এবং অন্যান্য টাইপোগ্যাটিক চিহ্নগুলির কী হবে?
VoVaVc

6
@ ভোভাভিসি: এটি তাদের পক্ষেও কাজ করে। গুরুত্বপূর্ণ জিনিস ব্যবহার করছে keypressঘটনা, যা আপনি একটি অক্ষর কোড, চেয়ে দেয় বরং keyupবা keydownযা আপনি একটি কী কোডটি দিন।
টিম ডাউন

2
@ আলজগম, e.keyএখনও সম্পূর্ণ ব্রাউজার সমর্থন নেই।
অ্যান্ডি মার্সার

1
আপনাকে তৈরি করতে শিফট টিপতে হবে এমন প্রতীকগুলির জন্য কাজ করে না!
কার্টিস

5
@ অ্যান্ডিমার্সার কী এখন সমস্ত বড় ব্রাউজার দ্বারা সমর্থিত: ডেভেলপার.মোজিলা.আর.ইন-
রা

34

এখানে এই প্রশ্নের মিলিয়ন ডুপ্লিকেট রয়েছে তবে এখানে আবার যাইহোক:

document.onkeypress = function(evt) {
    evt = evt || window.event;
    var charCode = evt.keyCode || evt.which;
    var charStr = String.fromCharCode(charCode);
    alert(charStr);
};

আমি যে কী ইভেন্টগুলি দেখেছি তার সর্বোত্তম রেফারেন্স হ'ল http://unixpapa.com/js/key.html


23

আরও সাম্প্রতিক এবং অনেক ক্লিনার: ব্যবহার event.key। আর যথেচ্ছ নম্বর কোড নেই!

দ্রষ্টব্য: পুরানো বৈশিষ্ট্যগুলি ( .keyCodeএবং .which) হ্রাস করা হয়েছে।

node.addEventListener('keydown', function(event) {
    const key = event.key; // "a", "1", "Shift", etc.
});

আপনি যদি নিশ্চিত করতে চান যে কেবলমাত্র একক অক্ষর প্রবেশ করেছে, পরীক্ষা করুন key.length === 1বা এটি যেটি আপনি প্রত্যাশা করেছেন তার মধ্যে একটি।

মজিলা ডক্স

সমর্থিত ব্রাউজারগুলি


এটি কি নোড.জেএস এর জন্য?
মেরিবোট

না, নোডের অর্থ হ'ল কোনও ডিওএম উপাদান। যদি আপনার নোড.জেএস কোনও ইউআই-তে সংযোগ থাকে তবে আমি মনে করি এটি কার্যকর হবে
গিবল্ট

কিছু মোবাইল ডিভাইসের কীডাউন এটি অপরিশোধিত ফিরতে কাজ করে না
অ্যাঞ্জেলোটি

4

চেষ্টা করুন:

<table>
<tr><td>Key:</td><td id="key"></td></tr>
<tr><td>Key Code:</td><td id="keyCode"></td></tr>
<tr><td>Event Code:</td><td id="eventCode"></td></tr>
</table>
<script type="text/javascript">
window.addEventListener("keydown", function (e) {
  //tested in IE/Chrome/Firefox
  document.getElementById("key").innerHTML = e.key;
  document.getElementById("keyCode").innerHTML = e.keyCode;
  document.getElementById("eventCode").innerHTML = e.code;
})
</script>

* দ্রষ্টব্য: এটি "কোড স্নিপেট চালান" তে কাজ করে

এই ওয়েবসাইটটি আমার কোডের উপরের মতো করে: কীকোড.ইন.ফো


1

এটি ব্যবহার করুন:

function onKeyPress(evt){
  evt = (evt) ? evt : (window.event) ? event : null;
  if (evt)
  {
    var charCode = (evt.charCode) ? evt.charCode :((evt.keyCode) ? evt.keyCode :((evt.which) ? evt.which : 0));
    if (charCode == 13) 
        alert('User pressed Enter');
  }
}

1
**check this out** 
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(document).keypress(function(e)
        {

            var keynum;
            if(window.event)
            { // IE                 
                keynum = e.keyCode;
            }
                else if(e.which)
                    { 
                    // Netscape/Firefox/Opera                   
                    keynum = e.which;
                    }
                    alert(String.fromCharCode(keynum));
                    var unicode=e.keyCode? e.keyCode : e.charCode;
                    alert(unicode);
        });
});  

</script>
</head>
<body>

<input type="text"></input>
</body>
</html>

1
এটি কি কোয়েডের ২০০৯ উত্তরের একটি সঠিক-সদৃশ নকল নয়?
ক্রিস এফ ক্যারল

1

পরিশীলিত পদ্ধতিতে এটি করতে আমার প্রিয় লাইব্রেরির একটি হ'ল মাউসট্র্যাপ

এটি বিভিন্ন প্লাগইন সহ স্টক করে আসে যার মধ্যে একটি হ'ল recordপ্লাগইন যা চাবির চাপগুলির ক্রম সনাক্ত করতে পারে।

উদাহরণ:

<script>
    function recordSequence() {
        Mousetrap.record(function(sequence) {
            // sequence is an array like ['ctrl+k', 'c']
            alert('You pressed: ' + sequence.join(' '));
        });
    }
</script>


<button onclick="recordSequence()">Record</button>

@ ড্যানলওয়ে আমি কেবল একটি স্নিপেট যুক্ত করেছি।
ডিপোল_মোমেন্ট

আনক্যাচড টাইপ এরির: মাউসট্রাপ.রেকার্ড এইচটিএমএল বাটন এলিমেন্ট.অনক্লিক (****। এইচটিএমএল: 20)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.