Esc 키로 Tab 닫기
이벤트 핸들러로 key down
을 체크합니다.
키가 눌렸을 때 esc
키가 맞는지 체크합니다.
1 2 3 4 5 6 const keyDownHandler = (event ) => { if (event.keyCode === 27 ) { event.preventDefault(); window .close(); } };
사용자가 key
를 누를때마다 keyDownHandler
가 실행됩니다.esc
의 keyCode
는 27
로 esc
키가 눌렸는지 체크합니다.window.close()
함수로 해당 tab
을 종료합니다.window.close()
함수는 window.open(url, '_blank')
로 열린 새 탭
에서만 동작합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import { useEffect } from 'react' ;function App ( ) { useEffect(() => { const keyDownHandler = (event ) => { if (event.keyCode === 27 ) { event.preventDefault(); window .close(); } }; document .addEventListener('keydown' , keyDownHandler); return () => document .removeEventListener('keydown' , keyDownHandler); }, []); return ( <div> <h1>hi</h1> </div> ); } export default App;
React
에서는 위와같이 사용하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 import { useEffect } from 'react' ;export function escCloseTab ( ) { useEffect(() => { const keyDownHandler = (event ) => { if (event.keyCode === 27 ) { event.preventDefault(); window .close(); } }; document .addEventListener('keydown' , keyDownHandler); return () => document .removeEventListener('keydown' , keyDownHandler); }, []); }
여러 페이지에서 탭 닫기 함수를 사용하려면 escCloseTab()
함수를 생성하여 사용하시면 됩니다.