window.open(url)
항목을 선택할 때 호출되는 선택 상자가 있습니다. Firefox는 기본적으로 페이지를 새 탭에서 엽니 다. 그러나 페이지를 새 탭이 아닌 새 창에서 열고 싶습니다.
어떻게하면됩니까?
window.open(url)
항목을 선택할 때 호출되는 선택 상자가 있습니다. Firefox는 기본적으로 페이지를 새 탭에서 엽니 다. 그러나 페이지를 새 탭이 아닌 새 창에서 열고 싶습니다.
어떻게하면됩니까?
답변:
창에 너비 / 높이가있는 'specs'매개 변수를 제공하십시오. 가능한 모든 옵션 은 여기 를 참조 하십시오 .
window.open(url, windowName, "height=200,width=200");
너비 / 높이를 지정하면 탭 대신 새 창에서 열립니다.
높이를 사용할 필요는 없습니다.을 사용하지 않으면 _blank
새 탭에서 열립니다.
빈 창 :
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
특정 URL의 경우 :
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
location=0
버튼이나 앵커 요소에서 JS를 호출 할 때 필요합니다.
location=0
매개 변수를 추가하는 것 입니다. 또한 _blank
사용자가 팝업을 여는 요소를 여러 번 클릭 focus()
하고 이미 열린 팝업이 포커스 를 갖도록 체인을 연결하는 경우 동일한 창을 다시 사용하도록 대상 을 사용하는 대신 창 이름을 지정하는 것이 좋습니다 .window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
나는 틀릴 수도 있지만, 내가 이해 한 바에 따르면, 이것은 사용자의 브라우저 환경 설정에 의해 제어되며 이것이 무시 될 수 있다고 생각하지 않습니다.
시험:
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');
동일한 결과를 제공하지 않습니다.
첫 번째 경우, 추가 매개 변수 없이 페이지를 처음 열면 새 탭 에서 열립니다 . 이 경우 사용자가 지정한 이름으로 인해이 탭 에서 두 번째 통화도 열립니다 .
두 번째의 경우, 첫 번째 호출이 될 때 함께 추가 매개 변수 페이지가 새로운 "에서 열립니다 실제 창 ". 이 경우 추가 매개 변수없이 두 번째 호출을 수행하더라도이 새로운 " 실제 창 " 에서도 열리지 만 동일한 탭에서 열립니다 !
즉, 첫 번째 호출은 페이지를 넣을 위치를 결정할 때 중요합니다.
필요하지 않습니다. 사용자가 원하는 환경 설정을 갖도록 허용하십시오.
Firefox는 기본적으로 새 창에서 페이지를 여는 것이 성가 시므로 사용자가 원하지 않는 경우 페이지를 열 수 없도록해야합니다. (Firefox를 사용하면 탭을 새 창에서 열 수 있습니다).
다음 기능을 시도해 볼 수 있습니다.
<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>
그 방법을 시도하십시오 .....
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 카나리아 SyzyASan)으로 시도했습니다.
window.open(url, "_blank", "x=y")
... 새 창에서 열었습니다.
어떤 의미 클린트 pachl 그가 어떤 하나 개의 매개 변수를 제공하면 새 창이 열리게 것이라고 말했다 때 바로 그것을했다.
분명히 합법적 인 매개 변수 일 필요는 없습니다!
(YMMV-말했듯이 두 곳에서만 테스트했으며 다음 업그레이드로 인해 결과가 무효화 될 수 있습니다)
ETA : IE에서 창에는 장식이 없습니다.
여기에 대답 했습니다 . 그러나 참조를 위해 다시 게시하십시오.
window.open()
실제 클릭 이벤트에서 발생하지 않으면 새 탭에서 열리지 않습니다. 주어진 예에서 URL은 실제 클릭 이벤트에서 열립니다. 사용자가 브라우저에서 적절한 설정을 제공 한 경우 작동합니다.
<a class="link">Link</a>
<script type="text/javascript">
$("a.link").on("click",function(){
window.open('www.yourdomain.com','_blank');
});
</script>
마찬가지로, 클릭 기능 내에서 아약스 호출을 시도하고 성공시 창을 열려면 async : false
옵션이 설정된 아약스 호출을 수행하고 있는지 확인하십시오 .
나는이 같은 질문을했지만 비교적 간단한 해결책을 찾았습니다.
JavaScript에서는 window.opener !=null;
창이 팝업인지 확인하고있었습니다. 비슷한 탐지 코드를 사용하여 사이트의 창을 렌더링 중인지 확인하면 새 창 JavaScript를 사용하여 "새" 창 을 열 때 쉽게 "끄기" 할 수 있습니다 .
항상 "새" 창이 되기를 원하는 페이지의 맨 위에 두십시오 .
<script type="text/javascript">
window.opener=null;
</script>
내 사이트의 로그인 페이지에서이를 사용하므로 사용자가 팝업 창을 사용하여 내 사이트로 이동하면 팝업 동작이 나타나지 않습니다.
이를 수행하는 간단한 리디렉션 페이지를 만든 다음 제공 한 URL로 이동할 수도 있습니다. 같은 것
부모 페이지의 JavaScript :
window.open("MyRedirect.html?URL="+URL, "_blank");
그리고 여기 에서 작은 자바 스크립트를 사용 하면 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>