크롬에서는 새 탭에서 열립니다.
<button onclick="window.open('newpage.html', '_blank')" />
새 창에서 열립니다 (하지만 새 탭에서도 열리기를 원합니다.
<script language="javascript">
window.open('newpage.html', '_blank');
</script>
이것이 가능합니까?
크롬에서는 새 탭에서 열립니다.
<button onclick="window.open('newpage.html', '_blank')" />
새 창에서 열립니다 (하지만 새 탭에서도 열리기를 원합니다.
<script language="javascript">
window.open('newpage.html', '_blank');
</script>
이것이 가능합니까?
답변:
Internet Explorer 사용자가 제어하는 옵션이므로 직접 제어 할 수 없습니다.
다른 창 이름으로 Window.open을 사용하여 페이지를 열면 팝업과 같은 새 브라우저 창에서 열리거나 사용자가 브라우저를 구성한 경우 새 탭에서 열립니다.
편집하다:
더 자세한 설명 :
1. 최신 브라우저에서 window.open은 팝업이 아닌 새 탭에서 열립니다.
2. 세 번째 매개 변수에 옵션을 지정하여 브라우저가 새 창 ( '팝업')을 사용하도록 강제 할 수 있습니다.
3. window.open 호출이 사용자 시작 이벤트의 일부가 아닌 경우 새 창에서 열립니다.
4. "사용자 시작 이벤트"는 동일한 함수 호출을 필요로하지 않지만 사용자 클릭에 의해 호출 된 함수에서 시작되어야합니다.
5. 사용자가 시작한 이벤트가 함수 호출을 위임하거나 연기하면 (이벤트 리스너에서 또는 클릭 이벤트에 바인딩되지 않은 위임 또는 setTimeout을 사용하여) "사용자 시작됨"상태가 손실됩니다.
6. 일부 팝업 차단기는 사용자가 시작한 이벤트에서 열리는 창을 허용하지만 그렇지 않은 경우에는 열리는 창을 허용하지 않습니다.
7. 팝업이 차단되면 차단기가 일반적으로 허용하는 팝업 (사용자 시작 이벤트를 통해)도 차단되는 경우가 있습니다. 몇 가지 예…
새 탭 대신 새 브라우저 인스턴스에서 창을 강제로 열도록하기 :
window.open('page.php', '', 'width=1000');
다음은 다른 함수를 호출하더라도 사용자가 시작한 이벤트로 한정됩니다.
function o(){
window.open('page.php');
}
$('button').addEvent('click', o);
다음은 setTimeout이 지연하므로 사용자 시작 이벤트로 간주되지 않습니다.
function g(){
setTimeout(o, 1);
}
function o(){
window.open('page.php');
}
$('button').addEvent('click', g);
사용자가 좋아하는 경우 탭을 강제로 사용하는 것이 때때로 유용합니다. Prakash가 위에서 언급했듯이 이것은 때때로 사용자가 시작하지 않은 이벤트의 사용에 의해 결정되지만 그에 대한 방법이 있습니다.
예를 들면 :
$("#theButton").button().click( function(event) {
$.post( url, data )
.always( function( response ) {
window.open( newurl + response, '_blank' );
} );
} );
"항상"기능은 사용자가 시작한 것으로 간주되지 않으므로 항상 새 브라우저 창에서 "newurl"을 엽니 다. 그러나 이렇게하면 :
$("#theButton").button().click( function(event) {
var newtab = window.open( '', '_blank' );
$.post( url, data )
.always( function( response ) {
newtab.location = newurl + response;
} );
} );
사용자가 시작한 버튼 클릭의 사용자 기본 설정에 따라 새 브라우저 창을 열거 나 새 탭을 만듭니다. 그런 다음 AJAX 게시물에서 돌아온 후 원하는 URL로 위치를 설정합니다. 짜잔, 우리는 사용자가 그것을 좋아한다면 탭 사용을 강요합니다.
를 사용하면 window.open(url, '_blank')
Chrome, Firefox 등에서 차단 (팝업 차단기)됩니다.
이 시도,
$('#myButton').click(function () {
var redirectWindow = window.open('http://google.com', '_blank');
redirectWindow.location;
});
이 http://jsfiddle.net/safeeronline/70kdacL4/2/에 대한 js 바이올린 작업
ajax 창에 대한 js 바이올린 작업 http://jsfiddle.net/safeeronline/70kdacL4/1/
현재 (Chrome 39)이 코드를 사용하여 새 탭을 엽니 다.
window.open('http://www.stackoverflow.com', '_blank', 'toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=yes');
물론 이것은 향후 버전의 Chrome에서 변경 될 수 있습니다.
사용자가 사용하는 브라우저를 제어 할 수없는 경우이 기능을 사용하는 것은 좋지 않습니다. 향후 버전이나 다른 설정에서는 작동하지 않을 수 있습니다.
VM646 js:12 Blocked opening 'http://www.stackoverflow.com/' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set.
그러면 Chrome 및 Firefox의 새 탭에서 링크가 열리고 테스트하지 않은 더 많은 브라우저가 열립니다.
var popup = $window.open("about:blank", "_blank"); // the about:blank is to please Chrome, and _blank to please Firefox
popup.location = 'newpage.html';
기본적으로 새 빈 탭을 열고 해당 빈 탭의 위치를 설정합니다. 브라우저 탭 / 창 동작은 실제로 브라우저와 사용자의 도메인, 책임 및 선택이기 때문에 일종의 해킹이라는 점에 유의하십시오.
두 번째 줄은 콜백에서 호출 될 수 있지만 (예를 들어 AJAX 요청을 수행 한 후) 브라우저는이를 사용자가 시작한 클릭 이벤트로 인식하지 못해 팝업을 차단할 수 있습니다.
$window
AngularJS의 window
. window
대신 간단히 사용할 수 있습니다 . 추가 정보 : docs.angularjs.org/api/ng/service/$window
명확한 미니 솔루션 $('<form action="http://samedomainurl.com/" target="_blank"></form>').submit()
이 코드를 사용하여 새 탭에서 열 수 있습니다.
function openWindow( url )
{
window.open(url, '_blank');
window.focus();
}
나는 그것을 stackoverflow .. 에서 얻었습니다 .