>웹 프론트엔드 >JS 튜토리얼 >플래시 없이 JavaScript에서 백그라운드에서 새 탭을 어떻게 열 수 있나요?

플래시 없이 JavaScript에서 백그라운드에서 새 탭을 어떻게 열 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-07 14:47:02844검색

How Can I Open a New Tab in the Background from JavaScript Without a Flash?

현재 탭을 유지하면서 백그라운드에서 새 탭을 열 수 있나요?

JavaScript로 작업할 때 열 수 있습니다. 다음 코드를 사용하여 현재 탭에 집중하면서 다른 탭의 새 페이지:

open('http://example.com/');
focus();

그러나 이 접근 방식을 사용하면 Chrome에서 현재 탭으로 다시 전환하기 전에 새 탭이 일시적으로 깜박일 수 있습니다. . 이 문제를 방지하려면 보다 정교한 방법이 필요합니다.

해결책: 주요 이벤트 시뮬레이션

이 해결 방법에는 컴퓨터에서 키 조합(예: Ctrl 클릭)을 시뮬레이션하는 작업이 포함됩니다. 동적으로 생성된 배경 탭을 생성하는 요소입니다. 다음 코드는 이를 수행합니다.

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    // Simulate Ctrl key press
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

이 방법은 요소의 href 속성을 원하는 URL로 설정한 다음 시뮬레이션된 'Ctrl' 키를 사용하여 클릭 이벤트를 전달합니다. 그러면 현재 탭의 초점에 영향을 주지 않고 배경 탭이 열립니다.

위 내용은 플래시 없이 JavaScript에서 백그라운드에서 새 탭을 어떻게 열 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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