programing

탭이 아닌 새 창에서 열리는 JavaScript

projobs 2022. 12. 20. 22:06
반응형

탭이 아닌 새 창에서 열리는 JavaScript

, 이 박스는 '''를 호출합니다'''window.open(url)항목을 선택한 경우.파이어폭스는 기본적으로 새 탭에서 페이지를 엽니다.탭이 창으로 .

어떻게 하면 좋을까요?

은 "기능"을 "기능"으로 합니다.open 삭제:

window.open(url, windowName, "height=200,width=200");

너비/높이를 지정하면 탭 대신 새 창에서 열립니다.

사용 가능한 모든 기능에 대해서는, https://developer.mozilla.org/en-US/docs/Web/API/Window.open#Position_and_size_features 를 참조해 주세요.

높이로 꼭 '높이'로 쓰세요, 키만 ._blank이 옵션이 없으면 새 탭으로 열립니다.

빈 창의 경우:

window.open('', '_blank', 'toolbar=0,location=0,menubar=0');

특정 URL의 경우:

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');

틀릴 수도 있지만, 제가 알기로는 이것은 사용자의 브라우저 설정에 의해 제어되며, 덮어쓸 수 있다고는 생각하지 않습니다.

시험:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");

네 말대로 하는 코드가 몇 가지 있지만, 그 안에 많은 변수가 있어.이게 최소인 것 같은데, 안 되면 알려주고 나머지는 올릴게요.

많은 테스트를 거친 후, 제 결론은 이렇습니다.

수행할 때:

     window.open('www.yourdomain.tld','_blank');
     window.open('www.yourdomain.tld','myWindow');

또는 수신인 필드에 무엇을 입력해도 변경되지 않습니다.새 페이지가 새 탭에서 열립니다(사용자 설정에 따라 다름).

새 "실제" 창에서 페이지를 열려면 추가 매개 변수를 추가해야 합니다.예를 들어 다음과 같습니다.

window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');

테스트 후 사용하는 추가 파라미터는 중요하지 않습니다.이것은 새로운 "실제 윈도"를 작성하는 "이 파라미터" 또는 "이 외의 파라미터"를 붙이는 것이 아니라 새로운 파라미터가 존재하는 것입니다.

하지만 뭔가 혼란스러워서 많은 오답이 설명될 수 있습니다.

이것은, 다음과 같습니다.

 win1 = window.open('myurl1', 'ID_WIN');
 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');

그리고 이것은:

 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win1 = window.open('myurl1', 'ID_WIN');

같은 결과를 얻을 수 없습니다.

첫 번째 경우 추가 매개 변수 없이 페이지를 처음 열면 새 에서 페이지가 열립니다.이 경우 사용자가 지정한 이름으로 인해 이 탭에서도 두 번째 콜이 열립니다.

두 번째 경우 첫 번째 콜이 추가 파라미터로 이루어지기 때문에 새로운 "실제 창"에서 페이지가 열립니다.이 경우 추가 파라미터 없이 두 번째 콜이 발생하더라도 이 새로운 "진짜 창"에서도 열립니다.단, 같은 탭입니다!

즉, 첫 번째 콜은 페이지를 어디에 배치할지를 결정했기 때문에 중요합니다.

다음의 기능을 시험해 보겠습니다.

<script type="text/javascript">
function open(url)
{
  var popup = window.open(url, "_blank", "width=200, height=200") ;
  popup.location = URL;
}
</script>

실행할 HTML 코드:

<a href="#" onclick="open('http://www.google.com')">google search</a>

그럴 필요 없어사용자가 원하는 대로 원하는 대로 설정할 수 있도록 합니다.

파이어폭스는 새로운 창에서 페이지를 여는 것이 귀찮고 사용자가 원하지 않는 경우 페이지를 열 수 없기 때문에 기본적으로 그렇게 합니다(Firefox를 사용하면 새 창에서 탭을 열 수 있습니다).

키는 다음과 같은 파라미터입니다.

파라미터 [Height=" , Width=" ]를 지정하면 새 창에서 열립니다.

파라미터를 지정하지 않으면 새 탭에서 열립니다.

Chrome 및 Firefox에서 테스트 완료

흥미롭게도 window.open의 세 번째 Atribute에 문자열(null 문자열 또는 속성 목록이 아닌)을 입력하면 Chrome, Firefox 및 IE의 새 탭에서 열립니다.존재하지 않는 경우는, 동작이 다릅니다.

자, 이것이 저의 새로운 전화입니다.

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

그 방법을 시험해 보다.

function popitup(url) {
       //alert(url);
       newwindow=window.open("http://www.zeeshanakhter.com","_blank","toolbar=yes,scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
       newwindow.moveTo(350,150);
   if (window.focus) 
          {
             newwindow.focus()
          }
   return false;
  }

IE(11)와 Chrome(54.0.2794.1 canari Syzy)로 시도했습니다.ASAN):

window.open(url, "_blank", "x=y")

새 창문이 열렸어요

, 클린트 파클이 어떤 파라미터라도 지정하면 새로운 창이 열린다고 말한 것이 옳다는 것입니다.

--정확한 파라미터일 필요는 없는 것 같습니다!

(YMMV - 말씀드렸듯이, 두 곳에서만 테스트했습니다...다음 업그레이드로 인해 결과가 무효가 될 수 있습니다.)

ETA: 근데 방금 알았어요.IE에서는 창문에 장식이 되어 있습니다.

저에게 해결책은 다음과 같습니다.

"location=0"

3번째 파라미터로 설정합니다.최신 FF/Chrome 및 이전 버전의 IE11에서 테스트 완료

사용하는 전체 메서드 호출은 다음과 같습니다(가변폭을 사용하고 싶기 때문에).

window.open(url, "window" + id, 'toolbar=0,location=0,scrollbars=1,statusbar=1,menubar=0,resizable=1,width=' + width + ',height=800,left=100,top=50');

여기서 대답했습니다.하지만 참고용으로 다시 올립니다.

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로 실행하고 합니다.async : false옵션 세트

html 타겟 속성 문제가 아닌 것 같습니다만, 파이어폭스 「옵션」메뉴의 「탭」탭의 「nw windows in a new tab」옵션을 오프했습니다.확인하고 다시 시도하십시오.

여기에 이미지 설명 입력

저도 같은 질문을 했지만 비교적 간단한 해결책을 찾았습니다.

JavaScript에서 내가 확인하고 있던 것은window.opener !=null;창이 팝업인지 여부를 확인합니다.유사한 탐지 코드를 사용하여 현재 사이트가 렌더링되고 있는 창이 팝업인지 확인하는 경우 새 Windows JavaScript를 사용하여 "새" 창을 열 때 쉽게 "끄기"할 수 있습니다.

항상 새로운 창을 원하는 페이지 맨 위에 놓기만 하면 됩니다.

<script type="text/javascript">
    window.opener=null;
</script>

사용자가 팝업 창을 사용하여 내 사이트로 이동해도 팝업 동작이 나타나지 않도록 내 사이트의 로그인 페이지에서 이 기능을 사용합니다.

간단한 리다이렉트 페이지를 생성하여 지정한 URL로 이동할 수도 있습니다.뭐랄까...

상위 페이지의 JavaScript:

window.open("MyRedirect.html?URL="+URL, "_blank");

여기서 javascript를 조금 사용하면 URL을 가져와 리다이렉트 할 수 있습니다.

리디렉션 페이지의 JavaScript:

 <script type="text/javascript">
        window.opener=null;

    function getSearchParameters() {
          var prmstr = window.location.search.substr(1);
          return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
    }

    function transformToAssocArray( prmstr ) {
        var params = {};
        var prmarr = prmstr.split("&");
        for ( var i = 0; i < prmarr.length; i++) {
            var tmparr = prmarr[i].split("=");
            params[tmparr[0]] = tmparr[1];
        }
        return params;
    }

    var params = getSearchParameters();
    window.location = params.URL;
    </script>

언급URL : https://stackoverflow.com/questions/726761/javascript-open-in-a-new-window-not-tab

반응형