>웹 프론트엔드 >JS 튜토리얼 >포커스를 전환하지 않고 백그라운드에서 새 탭을 여는 방법은 무엇입니까?

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-10 00:26:02918검색

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);
}

결론

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

위 내용은 포커스를 전환하지 않고 백그라운드에서 새 탭을 여는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.