document.activeElement
ලේඛනය නාභිගත නොවන්නේ නම් තනිවම මූලද්රව්යයක් ආපසු ලබා දිය හැකිය (එබැවින් ලේඛනයේ කිසිවක් අවධානය යොමු නොකෙරේ !)
ඔබට එම හැසිරීම අවශ්ය විය හැකිය , නැතහොත් එය වැදගත් නොවනු ඇත (උදා: 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
);
ශක්තිමත් බව සටහන : එය පරීක්ෂා කරන කේතයේ document.body
සහ document.documentElement
, මෙයට හේතුව සමහර බ්රව්සර් මේවායින් එකක් ආපසු ලබා දීම හෝ null
කිසිවක් අවධානය යොමු නොකිරීමයි.
<body>
(හෝ සමහර විට <html>
) tabIndex
ගුණාංගයක් තිබුනේ නම් සහ එය ඇත්ත වශයෙන්ම අවධානය යොමු කළ හැකි නම් එය ගණන් නොගනී . ඔබ පුස්තකාලයක් හෝ යමක් ලියන්නේ නම් සහ එය ශක්තිමත් වීමට අවශ්ය නම්, ඔබ එය කෙසේ හෝ හැසිරවිය යුතුය.
අවධානය යොමු කරන ලද මූලද්රව්යය ලබා ගැනීමේ ( බර ගුවන් යානා) “එක්-ලයිනර්” අනුවාදය මෙන්න , එය කෙටි පරිපථ ගැන ඔබ දැන සිටිය යුතු නිසා සංකල්පමය වශයෙන් වඩාත් සංකීර්ණ වන අතර, එය පැහැදිලිවම එක් රේඛාවකට නොගැලපේ, ඔබ උපකල්පනය කරයි එය කියවිය හැකි වීමට අවශ්යයි.
මම මෙය නිර්දේශ නොකරමි. නමුත් ඔබ 1337 hax0r නම්, idk ... එය තිබේ. සමහර අවස්ථාවලදී ලබා ගැනීමට ඔබට අවශ්ය නැතිනම් ඔබට
එම || 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;
});
සිදුවීම් රහිත ක්රමය භාවිතා කිරීමෙන් ඔබට ආරම්භක රාජ්ය උපකල්පනය නිවැරදි කළ හැකිය, නමුත් ඔබට ඒ වෙනුවට එය භාවිතා කළ හැකිය.