"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 포커스를 전환하지 않고 백그라운드에서 새 탭을 여는 방법은 무엇입니까?

포커스를 전환하지 않고 백그라운드에서 새 탭을 여는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:953

How to Open a New Tab in the Background Without Switching Focus?

포커스 전환 없이 백그라운드에서 새 탭 열기

이 질문에서 사용자는 별도의 탭에서 새 탭을 열려고 합니다. 새 탭으로 초점이 이동하지 않고. open() 및 focus() 메서드를 사용한 시도를 보여주지만 Chrome의 현재 탭으로 돌아가기 전에 새 탭이 순간적으로 깜박이는 현상이 발생합니다.

그러나 제공된 답변은 이벤트를 사용하는 대체 솔루션을 제시합니다. 이 문제를 우회하기 위한 시뮬레이션입니다.

사용자 정의 이벤트 디스패치

이 동작을 달성하는 열쇠는 요소를 동적으로 생성하고 해당 href 속성을 원하는 요소에 할당하는 것입니다. URL. 이어서 이벤트(이 경우 마우스 클릭)가 생성되고 "ctrl" 키 수정자를 포함한 특정 매개변수로 초기화됩니다. 이는 링크를 클릭하는 동안 "ctrl" 키를 누르는 동작을 에뮬레이트합니다. 이는 백그라운드에서 새 탭을 여는 기본 동작입니다.

구현

제공된 코드는 이 기술을 예시합니다:

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    //the tenth parameter of initMouseEvent sets ctrl key
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                                true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

결론

이벤트 시뮬레이션을 활용하는 이 솔루션은 현재 탭의 초점에 영향을 주지 않고 백그라운드에서 새 탭을 효과적으로 엽니다. 이 기술은 원활한 사용자 경험을 위해 현재 탭에 초점을 유지하는 것이 중요한 브라우저 확장 프로그램이나 북마크릿에 특히 유용합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3