2014-10-04 3 views
-2

JavaScript 또는 jQuery를 사용하여 새 브라우저 탭에서 URL을 열려고합니다. 이미 열렸 으면 탭이 선택됩니다.새 탭에서 URL 열기

이 함수를 사용하여 엽니 다.

function OpenInNewTab(url) { 
    var win = window.open(url, '_blank'); 
    win.focus(); 
} 

탭이 이미 열려있는 경우 어떻게해야합니까?

+0

이미 연 창 배열을 계속 사용하기 전에 때마다 현재 페이지에서로드 하위 페이지에 대한 모든 링크를 저장하고 확인하는 소수가 될 수 있습니다. OpenInNewTab에서 배열에 커서가있는 경우 URL 창이 있는지 확인하고, 그렇지 않으면 윈도우를 열고 배열로 푸시합니다. – artm

+0

팁 주셔서 감사합니다. – Farhad

+1

이것이 앵커 태그를 단순한 target = "_ blank"로 사용할 수없는 이유가 있습니까? –

답변

0

는 여기를 참조하십시오 : 여기

How to change browser focus from one tab to another

과 :

Detect If Browser Tab Has Focus

모두의 이전 스택 오버플로 게시물입니다.

그것은 알 수 때 당신의 탭, 사용자로부터 거리를 이동할 때 (새로운 페이지 가시성 API를 사용하여)

그러나 자바 스크립트를 사용하여 다른 탭으로 전환하는 것은 불가능합니다.

그러나 브라우저 응용 프로그램과 통신 할 수있는 외부 프로그램을 작성할 수는 있지만 웹 페이지에서 직접 시작할 수는 없습니다. 엄청난 보안 위험이 있습니다.

0

일반적으로 스크립트는 보안상의 이유로 열려있는 페이지에 대한 정보를 브라우저에서 가져올 수 없습니다.

아마 window.open

var openedPages = [] 

function openUrl(url) 
{ 
    if (!isWindowActive(url)) 
    { 
    var win = window.open(url, '_blank') 

    // also it's good to prevent duplicate url's, but I omit that stuff for simplicity 
    openedPages.push({ 'url': url, 'win' : win }) 
    } 
} 

function isWindowActive(url) 
{ 
    for(var i = 0; i < openedPages.length; ++i) 
    { 
    var page = openedPages[i] 

    if (page.url === url) 
    { 
     return !page.win.closed 
    } 

    return false 
    } 
} 
+0

오케이 내가 틀렸어. 이 예제를 설명하기 위해 쓴 : http://jsfiddle.net/wc70ef29/ – CodeColorist