তবুও অন্য একটি সংস্করণ, পরিষ্কার এবং সরল, হস্তান্তরিত ক্যাপসলকটি পরিচালনা করে, এবং এএসআইআই-তে আমার মনে হয় না:
document.onkeypress = function (e)
{
e = e || window.event;
if (e.charCode === 0 || e.ctrlKey || document.onkeypress.punctuation.indexOf(e.charCode) >= 0)
return;
var s = String.fromCharCode(e.charCode); // or e.keyCode for compatibility, but then have to handle MORE non-character keys
var s2 = e.shiftKey ? s.toUpperCase() : s.toLowerCase();
var capsLockOn = (s2 !== s);
document.getElementById('capslockWarning').style.display = capsLockOn ? '' : 'none';
}
document.onkeypress.punctuation = [33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,91,92,93,94,95,96,123,124,125,126];
সম্পাদনা করুন: ক্যাপস লকঅন সংবেদনটি বিপরীত ছিল, দোহ, স্থির।
সম্পাদনা # 2: এটি আরও কিছু যাচাই করার পরে, আমি দুর্ভাগ্যক্রমে কিছু পরিবর্তন করেছি, কিছুটা আরও বিস্তৃত কোড করেছি, তবে এটি যথাযথভাবে আরও ক্রিয়া পরিচালনা করে।
E.CCCode এর পরিবর্তে e.charCode ব্যবহার করা এবং 0 টি মানের জন্য পরীক্ষা করা কোনও নির্দিষ্ট ভাষা বা চরসেটের সাথে নির্দিষ্ট কোনও কোডিং ছাড়াই প্রচুর নন-ক্যারেক্টার কিপ্রেসগুলি এড়িয়ে যায়। আমার বোধগম্যতা থেকে, এটি কিছুটা কম সামঞ্জস্যপূর্ণ, তাই পুরানো, মূল-মূলধারার না, বা মোবাইল ব্রাউজারগুলি এই কোডটি প্রত্যাশা হিসাবে আচরণ করতে পারে না, তবে যাইহোক আমার পরিস্থিতির জন্য এটি মূল্যবান।
পরিচিত বিরামচিহ্ন কোডগুলির তালিকার বিরুদ্ধে চেক করা তাদের মিথ্যা নেতিবাচক হিসাবে দেখা থেকে বাধা দেয়, কারণ তারা ক্যাপস লক দ্বারা প্রভাবিত হয় না। এটি ছাড়াই আপনি যখন কোনও বিরামচিহ্ন অক্ষর টাইপ করেন তখন ক্যাপস লক সূচকটি লুকিয়ে যায়। একটি অন্তর্ভুক্ত সেট না করে বাদ দেওয়া সেট নির্দিষ্ট করে, এটি প্রসারিত অক্ষরের সাথে আরও সুসংগত হওয়া উচিত। এটি অদৃশ্যতম, বিশেষ-ক্যাসিস্ট বিট এবং এর কিছু সম্ভাবনা রয়েছে যে অ-পাশ্চাত্য ভাষাগুলিতে সমস্যা হওয়ার জন্য বিভিন্ন পর্যাপ্ত বিরামচিহ্ন এবং বিরামচিহ্ন কোড রয়েছে তবে এটি আবার আইএমও এর পক্ষে মূল্যহীন, কমপক্ষে আমার পরিস্থিতির জন্য।