javascript에서 포커스를 지우려면 어떻게 해야 하나요?
이것이 그렇게 어렵지 않다는 것을 알지만, 구글에서 답을 찾을 수 없었다.
어떤 요소에 포커스가 있는지 미리 파악하지 않고 어떤 요소에 포커스가 있는지 클리어하는 Javascript를 실행하고 싶습니다.파이어폭스 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()다른 임의의 것을 당신의 페이지에 표시합니다.포커스를 가질 수 있는 요소는 1개뿐이므로 해당 요소로 전송된 후 제거됩니다.
document.activeElement.blur();
IE9에서 제대로 작동하지 않음 - 활성 요소가 문서 본문인 경우 브라우저 창 전체가 흐려집니다.이 케이스에 대해 확인하는 것이 좋습니다.
if (document.activeElement != document.body) document.activeElement.blur();
선택한 요소의 종류를 모르기 때문에, TypeScript 를 사용하고 있는 경우는, 여기에 기재되어 있는 회답 중 어느 것도 완전하게 올바른 것은 없습니다.
따라서 이 방법이 선호됩니다.
if (document.activeElement instanceof HTMLElement)
document.activeElement.blur();
또, 그 결과, 흐림 현상은 공식 사양의 일부가 아니고, 언제라도 파손될 가능성이 있기 때문에, 수락한 회답에 기재된 솔루션을 사용하는 것을 추천합니다.
타이프스크립트를 사용하는 모든 사용자의 경우
(document.activeElement as HTMLElement).blur();
이를 통해 요소가 HTMlement 유형임을 확인할 수 있습니다.
더미 일렘focus() 여기서 dummyElem은 숨겨진 객체(예를 들어 마이너스 zIndex)입니다.
창구를 호출할 수 있습니다.포커스();
그러나 포커스를 이동하거나 놓치면 탭 키를 사용하여 페이지를 이동하는 데 방해가 됩니다.
키 코드 13을 듣고 탭 키를 누르면 효과가 사라집니다.
나는 더 좋다document.activeElement?.blur && document.activeElement.blur().
vue & react를 사용하고 있습니다.제 경우, 컴포넌트 사이의 어느 부분에 대해서도 호출할 수 있습니다.그러면 포커스가 없어집니다.
jQuery를 사용하면 다음과 같습니다.$(this).blur();
언급URL : https://stackoverflow.com/questions/2520650/how-do-you-clear-the-focus-in-javascript
'programing' 카테고리의 다른 글
| Java를 사용하여 16진수 덤프의 문자열 표현을 바이트 배열로 변환하시겠습니까? (0) | 2022.11.14 |
|---|---|
| JavaScript에서 이메일을 보내는 방법 (0) | 2022.11.14 |
| 텍스트 입력 필드에서 Enter 키를 검출합니다. (0) | 2022.11.14 |
| PHP var_dump()와 같이 Smarty에서 변수를 디버깅하는 방법 (0) | 2022.11.14 |
| 오류 메시지 "Strict standards:변수만 참조로 전달해야 합니다." (0) | 2022.11.14 |