반응형

새 탭에서 URL을 엽니 다 (새 창이 아님)


질문

 

팝업 창과는 반대로 새 탭에서 URL을 열려고합니다.

나는 반응이 같은 것을 보는 관련 질문을 보았습니다.

window.open(url,'_blank');
window.open(url);

그러나 그들 중 누구도 나를 위해 일하지 않았습니다. 브라우저는 여전히 팝업 창을 열려고했습니다.


답변

 

이것은 트릭,

function openInNewTab(url) {
 window.open(url, '_blank').focus();
}

//or just
window.open(url, '_blank').focus();

대부분의 경우 팝업 차단제를 방지하고 기본 "새 창"동작을 방지하기 위해 링크를 위해 링크 핸들러에서 직접 발생해야합니다.이 방법을 수행하거나 DOM 객체에 이벤트 리스너를 추가 할 수 있습니다.

<div onclick="openInNewTab('www.test.com');">Something To Click On</div>

http://www.tutsplanet.com/open-url-new-tab-using-javascript/



답변

작성자가 새로운 윈도우 대신 새 탭에서 열 수있는 것을 선택할 수있는 것은 없습니다.그것은 사용자 선호도입니다.대부분의 브라우저의 기본 사용자 기본 설정은 새 탭을위한 것이므로 기본 설정이 변경되지 않은 브라우저의 사소한 테스트는이 기능을 보여주지 않습니다.

CSS3는 목표를 제안하지만 사양을 포기했습니다.

반전은 사실이 아닙니다.window.open ()의 세 번째 인수에있는 창에 대한 특정 창 기능을 지정하면 환경 설정이 탭 용이면 새 창을 트리거 할 수 있습니다.



답변

window.open () 실제 클릭 이벤트에서 일어나지 않으면 새 탭에서 열리지 않습니다.주어진 예제에서는 실제 클릭 이벤트에서 URL이 열리고 있습니다.이렇게하면 브라우저에서 사용자에게 적절한 설정이 있음 제공됩니다.

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

마찬가지로 클릭 기능에서 AJAX 호출을 수행하고 성공시 창을 열려고 할 경우 비동기 : FALSE 옵션 세트를 사용하여 AJAX 호출을 수행 할 수 있습니다.



답변

function openInNewTab(href) {
  Object.assign(document.createElement('a'), {
    target: '_blank',
    href: href,
  }).click();
}

가상 A 요소를 생성하고 대상 = "_ 공백"을 제공하므로 새 탭에서 열리고 올바른 URL HREF를 제공 한 다음 클릭합니다.

다음과 같이 사용할 수 있습니다.

openInNewTab("https://google.com"); 

중요 사항:

OpenInnewTab (이 페이지의 다른 솔루션)은 소위 '신뢰할 수있는 이벤트'콜백 중에 호출되어야합니다. 예.클릭 이벤트 (콜백 함수에서는 콜백 함수에서는 필요 없지만 클릭 동작 중에 필요하지 않음).그렇지 않으면 새 페이지를 여는 것은 브라우저에서 차단됩니다.

일부 무작위 순간 (예 : 간격 또는 서버 응답 후)에서 수동으로 전화를 걸면 브라우저가 차단할 수 있습니다 (보안 위험이 있으므로 사용자 경험이 좋지 않을 수 있음)



답변

Window.Open은 모든 브라우저에서 새 탭에서 팝업을 안정적으로 열 수 없습니다.

다른 브라우저는 윈도우의 동작을 구현합니다. 특히 사용자의 브라우저 기본 설정과 관련하여 여러 가지 방법으로 여러 가지 방법으로 제공됩니다.사용자의 브라우저 환경 설정을 처리하는 다양한 방법으로 인해 Internet Explorer, Firefox 및 Chrome의 모든 인터넷 익스플로러, Firefox 및 Chrome에서도 동일한 동작을 기대할 수 없습니다.

예를 들어 Internet Explorer (11) 사용자는 새 창이나 새 탭에서 팝업을 열지 않도록 선택할 수 있으므로 Internet Explorer 11 사용자가 Quentin의 답변을 암시하는대로 Window.Open을 통해 특정 방향으로 팝업을 열 수 없습니다.

Firefox (29) 사용자가 Window.Open (URL, '_BLANK')을 사용하여 브라우저의 탭 환경 설정에 따라 다르지만 너비와 높이를 지정하여 새 창에서 팝업을 열 수 있습니다 ( "크롬? "아래 섹션).

데모

브라우저 설정으로 이동하여 새 창에서 팝업을 열도록 구성하십시오.

Internet Explorer (11)

javascript

javascript

테스트 페이지

Internet Explorer (11)를 설치 한 후 위에서 설명한 새 창에서 팝업을 열려면 다음 테스트 페이지를 사용하여 window.open을 테스트하십시오.

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
  </head>

  <body>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814');">
      <code>window.open(url)</code>
    </button>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814', '_blank');">
      <code>window.open(url, '_blank')</code>
    </button>
  </body>
</html>

새 창이 아닌 새 창에서 팝업이 열리지 않도록 관찰하십시오.

또한 Firefox (29) 위의 스 니펫을 새 창으로 설정하고 동일한 결과를 볼 수 있습니다.

크롬은 어떨까요?Internet Explorer (11) 및 Firefox (29)와 다르게 창문을 구현합니다.

나는 100 % 확실하지는 않지만 크롬 (버전 34.0.1847.131 m)이 새 창이나 새 탭에서 팝업을 열지 못하는지 여부를 선택하는 데 사용자가 사용할 수있는 설정이있는 것으로 보이는 것으로 보이는 것으로 보입니다.Firefox 및 Internet Explorer가 있습니다).나는 팝업을 관리하기 위해 Chrome 문서를 확인했지만 그 일종에 대해서는 아무 것도 언급하지 않았습니다.

또한 다시 한번, 다른 브라우저가 Window의 동작을 구현하는 것으로 보입니다. 다르게.크롬 및 파이어 폭스에서는 사용자가 Firefox (29)를 설정 한 경우에도 폭과 높이를 지정하면 새 창에서 새 창을 열어 새 창에서 새 창을 열어라도 팝업을 수행합니다 (탭이 아닌 새 창에서 열려있는 답변에 대한 답변에서 언급했듯이 언급했듯이):

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
  </head>

  <body>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814', 'test', 'width=400, height=400');">
      <code>window.open(url)</code>
    </button>
  </body>
</html>

그러나 위의 동일한 코드 스 니펫은 탭을 브라우저 환경 설정으로 설정하지 않고 탭을 설정하지 않고 탭을 설정하지 않고 새로운 탭을 팝업합니다.

따라서 Chrome에서 창의 동작은 onClick 이벤트에서 사용될 때 새 창에서 새 창에서 열어 새 창에서 팝업을 열고 브라우저 콘솔에서 사용될 때 새 창에서 열리고 열을 엽니 다.새로운 창에서 너비와 높이로 지정 될 때.

요약

다른 브라우저는 사용자의 브라우저 환경 설정과 관련하여 Window.Open을 다르게 구현합니다.사용자의 브라우저 환경 설정을 처리하는 다양한 방법으로 인해 Internet Explorer, Firefox 및 Chrome의 모든 인터넷 익스플로러, Firefox 및 Chrome에서도 동일한 동작을 기대할 수 없습니다.

추가 독서

창. 설명서.



답변

Window.Open (URL, '_blank')을 사용하는 경우 크롬에서 차단됩니다 (팝업 차단기).

이 시도:

//With JQuery

$('#myButton').click(function () {
    var redirectWindow = window.open('http://google.com', '_blank');
    redirectWindow.location;
});

순수한 자바 스크립트로,

document.querySelector('#myButton').onclick = function() {
    var redirectWindow = window.open('http://google.com', '_blank');
    redirectWindow.location;
};
출처:https://stackoverflow.com/questions/4907843/open-a-url-in-a-new-tab-and-not-a-new-window
반응형