JavaScript : location.href를 새 창 / 탭에서 열 수 있습니까?


389

타사 개발자의 JavaScript 파일이 있습니다. 현재 페이지를 대상으로 대체하는 링크가 있습니다. 이 페이지를 새 탭에서 열고 싶습니다.

이것이 내가 지금까지 가진 것입니다.

if (command == 'lightbox') {
 location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual";
}

누구든지 나를 도울 수 있습니까?

답변:


930
window.open(
  'https://support.wwf.org.uk/earth_hour/index.php?type=individual',
  '_blank' // <- This is what makes it open in a new window.
);

102
언급 할만한 가치 : 새 탭 또는 창 생성 여부는 브라우저 (설정)에 의해 결정됩니다 .
jAndy

4
@alex 중요한 답을 읽을 수 있도록이 답변을 편집했습니다. 형식을 승인하지 않으면 두 번째 매개 변수가 스크롤 해제 영역에 맞도록 URL을 줄이십시오.
Phrogz

5
@ErickBest 맞습니다. "_blank"창 / 탭이 새 것임을 보증합니다. 다른 특수 이름 외에 다른 항목은 해당 창에 특정 이름을 지정하며 해당 대상에 대한 후속 링크는 창을 재사용합니다. jsFiddle .
alex

2
이것은 최신 브라우저에서 팝업 차단 알림을 트리거하며 _blank앵커 클릭을 전혀 시뮬레이트하지 않습니다 .
Nathan Hornby

22
브라우저에서 팝업을 방지했습니다.
Jitendra Pancholi

24

당신이 사용하려는 경우 location.href피하기 팝업 문제, 당신은 빈 사용할 수있는 <a>심판하고 다음을 클릭합니다 자바 스크립트를 사용합니다.

HTML과 같은 것

<a id="anchorID" href="mynewurl" target="_blank"></a>

그런 다음 자바 스크립트를 다음과 같이 클릭하십시오.

document.getElementById("anchorID").click();

13
이 솔루션에 대한 희망이 있었지만 여전히 팝업 블록을 트리거하는 것으로 보입니다 (적어도 Chrome에서는). 브라우저가 자바 스크립트 클릭임을 인식하고 다르게 취급한다고 생각합니다.
Nathan Hornby

1
네이선 감사합니다. 당신은 꽤 정확합니다. 여전히 팝업 차단 메시지가 나타납니다. 나는 그것을 치료할 것이라고 생각했다. 이론적으로는 효과가 있었을 것입니다. 앤드류
앤드류 필드

2
$("#anchorID")[0].click(); 이 솔루션을 jquery와 함께 사용하십시오.
theBell

1
Lol theBell, DOM 요소에 직접 액세스하는 경우 jQuery가 아님[0]
Andre Figueiredo

7

을 사용하여 새 창에서 열 수 있습니다 window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');. 새 탭에서 열려면 두 개의 탭에서 현재 페이지를 연 다음 현재 페이지와 새 페이지를 모두 얻을 수 있도록 스크립트를 실행하십시오.


6

window.open에 대한 순수한 js 대안

let a= document.createElement('a');
a.target= '_blank';
a.href= 'https://support.wwf.org.uk/';
a.click();

다음은 실례입니다 (스택 오버 플로우 스 니펫은 열 수 없습니다)


0

예를 들면 다음과 같습니다.

    $(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

작업 .


브라우저에서 팝업을 방지했습니다.
Millar248

1
그것은 당신이 adblock 또는 그것을 막는 다른 것을 가지고 있다는 것을 의미합니다. 기본 동작은 정상적인 조건에서 작동해야합니다.
Andrey Seregin

0

다음과 같은 매개 변수를 사용하여 조치 메소드를 호출하는 새 탭을 열 수도 있습니다.

   var reportDate = $("#inputDateId").val();
   var url = '@Url.Action("PrintIndex", "Callers", new {dateRequested = "findme"})';
   window.open(window.location.href = url.replace('findme', reportDate), '_blank');

첫 번째와 두 번째 줄이 필요합니까? reportDateurl변수 가 없으면 작동하지 않습니까?
배우십시오

매개 변수 (reportDate)를 제거 할 수 있지만 url var는 action 메소드에 대한 호출을 포함하므로 중요합니다.
Primoshenko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.