নিজেই, document.activeElement
নথিটি কেন্দ্রীভূত না হলে এখনও একটি উপাদান ফিরে আসতে পারে (এবং এইভাবে নথির কোনও কিছুই কেন্দ্রীভূত নয়!)
আপনি পারে যে আচরণ চান, অথবা এটি may ব্যাপার না (যেমন একটি মধ্যে keydown
ইভেন্ট), কিন্তু আপনি যদি কিছু হয় আসলে দৃষ্টি নিবদ্ধ করা জানতে হবে, আপনি অতিরিক্ত পরীক্ষা করতে পারবেন document.hasFocus()
।
নীচেগুলি যদি অন্য কোনও হয় তবে আপনাকে কেন্দ্রিক উপাদান দেবে null
।
var focused_element = null;
if (
document.hasFocus() &&
document.activeElement !== document.body &&
document.activeElement !== document.documentElement
) {
focused_element = document.activeElement;
}
নির্দিষ্ট উপাদানটির ফোকাস রয়েছে কিনা তা যাচাই করার জন্য এটি সহজ:
var input_focused = document.activeElement === input && document.hasFocus();
যে কোনও কিছু কেন্দ্রীভূত কিনা তা পরীক্ষা করতে এটি আরও জটিল:
var anything_is_focused = (
document.hasFocus() &&
document.activeElement !== null &&
document.activeElement !== document.body &&
document.activeElement !== document.documentElement
);
দৃust়তা দ্রষ্টব্য : কোডটি যেখানে এটির বিপরীতে পরীক্ষা করে document.body
এবং এর document.documentElement
কারণ এটি হয় কারণ কিছু ব্রাউজার এইগুলির মধ্যে একটি ফেরত দেয় বা null
যখন কিছুই কেন্দ্রীভূত হয় না।
যদি <body>
(বা হতে পারে <html>
) কোনও tabIndex
বৈশিষ্ট্য থাকে এবং এটি আসলে মনোনিবেশ করা যায় তবে এটি অ্যাকাউন্টে আসে না । আপনি যদি কোনও লাইব্রেরি বা কিছু লিখছেন এবং এটি দৃust় হতে চান তবে আপনার সম্ভবত এটি কোনওভাবে পরিচালনা করা উচিত।
ফোকাসযুক্ত উপাদান পাওয়ার একটি ( ভারী এয়ারকোটস) "ওয়ান-লাইনার" সংস্করণ এখানে দেওয়া হয়েছে যা ধারণাগতভাবে আরও জটিল কারণ আপনাকে শর্ট সার্কিটিং সম্পর্কে জানতে হবে এবং আপনি জানেন যে, এটি সম্ভবত এক লাইনে ফিট করে না, আপনাকে ধরে নিয়েছে এটি পাঠযোগ্য হতে চান।
আমি এটির প্রস্তাব দিচ্ছি না। তবে আপনি যদি 1337 হ্যাক্স0r, আইডিকে ... এটি আছে there
আপনি || null
যদি false
কিছু ক্ষেত্রে পেতে আপত্তি না করেন তবে আপনিও অংশটি সরিয়ে ফেলতে পারেন । (আপনি এখনও পেতে পারে null
যদি document.activeElement
হয় null
):
var focused_element = (
document.hasFocus() &&
document.activeElement !== document.body &&
document.activeElement !== document.documentElement &&
document.activeElement
) || null;
কোনও নির্দিষ্ট উপাদান ফোকাস করা হয়েছে কিনা তা যাচাই করার জন্য, বিকল্পভাবে আপনি ইভেন্টগুলি ব্যবহার করতে পারেন, তবে এই উপায়টির জন্য সেটআপ (এবং সম্ভাব্য টিয়ারডাউন) প্রয়োজন, এবং গুরুত্বপূর্ণভাবে, প্রাথমিক অবস্থায় ধরে নেওয়া :
var input_focused = false;
input.addEventListener("focus", function() {
input_focused = true;
});
input.addEventListener("blur", function() {
input_focused = false;
});
আপনি অ-সন্নিবিষ্ট উপায় ব্যবহার করে প্রাথমিক রাষ্ট্র অনুমান সংশোধন করতে পারেন, তবে তারপরে আপনি সম্ভবত এটি ব্যবহার করতে পারেন।