탭이 아닌 새 창에서 열리는 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
'programing' 카테고리의 다른 글
웹 페이지에 있는 텍스트 그림을 애니메이션으로 만들려면 어떻게 해야 합니까? (0) | 2022.12.20 |
---|---|
Java 어플리케이션에서 배치파일을 실행하려면 어떻게 해야 하나요? (0) | 2022.12.20 |
C/C++에서 함수 포인터와 데이터 포인터가 호환되지 않는 이유는 무엇입니까? (0) | 2022.12.10 |
운영 환경에서 DEV 모드의 Vue (0) | 2022.12.10 |
Docker-compose mysql: Import .sql (0) | 2022.12.10 |