나는 그렇게 어렵지 않아야한다는 것을 알고 있지만 Google에서 답을 찾을 수 없습니다.
포커스가있는 요소를 미리 알지 못하고 어떤 요소에서든 포커스를 지우는 자바 스크립트를 실행하고 싶습니다. 최신 브라우저뿐만 아니라 firefox 2에서도 작동해야합니다.
이를 수행하는 좋은 방법이 있습니까?
답변
원하는 것을하려면 document.activeElement.blur()
Firefox 2를 지원해야하는 경우 다음을 사용할 수도 있습니다.
function onElementFocused(e)
{
if (e && e.target)
document.activeElement = e.target == document ? null : e.target;
}
if (document.addEventListener)
document.addEventListener("focus", onElementFocused, true);
답변
.focus()
그런 다음 .blur()
페이지에 임의의 다른 것이 있습니다. 하나의 요소 만 포커스를 가질 수 있으므로 해당 요소로 전송 된 다음 제거됩니다.
답변
document.activeElement.blur();
IE9에서 잘못 작동합니다. 활성 요소가 문서 본문 인 경우 전체 브라우저 창이 흐리게 표시됩니다. 이 경우를 확인하는 것이 좋습니다.
if (document.activeElement != document.body) document.activeElement.blur();
답변
선택한 요소의 종류를 알지 못할 수 있으므로 TypeScript를 사용할 때 여기에 제공된 답변 중 완전히 올바른 것은 없습니다.
따라서이 방법이 선호됩니다.
if (document.activeElement instanceof HTMLElement)
document.activeElement.blur();
결과적으로 흐리게 표현이 공식 사양의 일부가 아니므로 언제든지 깨질 수 있으므로 허용 된 답변에 제공된 솔루션을 사용하지 않는 것이 좋습니다.
답변
dummyElem.focus () 여기서 dummyElem은 숨겨진 객체입니다 (예 : 음의 zIndex가 있습니까)?
답변
window.focus ();를 호출 할 수 있습니다.
그러나 포커스를 이동하거나 잃는 것은 탭 키를 사용하여 페이지를 돌아 다니는 사람을 방해 할 수밖에 없습니다.
키 코드 13을 듣고 탭 키를 누르면 효과가 사라질 수 있습니다.
답변
jQuery를 사용하면 다음과 같습니다. $(this).blur();