2012-04-24 3 views
37

자바 스크립트의 self.open()을 사용하여 새 창에서 링크를 열면 그 창이 최대화되기를 바랍니다. 나는 내가 원하는 것을 실제로하지 않는 fullscreen=yes 옵션을 시도했다. 내가 코드 아래 사용하고 있습니다 :Javascript로 최대화 된 창을 여는 방법은 무엇입니까?

self.open(pageLoc,popUpName,'height=1600,width=1800,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 

나는 또한 fullscreen=yes을 언급하면, 창은 F11을 눌러처럼 열립니다. 그러나 나는 그것을 원하지 않는다. 내가 원하는 것은 IE을 더블 클릭하고 오른쪽 상단에있는 아이콘을 최대화 할 때입니다.

heightwidth 값이 너무 큽니다. 따라서 최대화 된 창에 가깝지만 실제로 최대화 된 창은 아닙니다. (이유는 내가 최대화 버튼을 클릭하면 지금도 때문에 이런 말을하고, 그것을 더 expans 조금)

+2

[관련] (http://stackoverflow.com/q/4378444/693207) –

+0

@Juren Thelen.큰 높이와 너비가 주어진 후에도 언급했듯이 실제 최대 효과는주지 못합니다. –

+0

@ Jürgen 나는 대답일지도 모른다. – ThdK

답변

67
var params = [ 
    'height='+screen.height, 
    'width='+screen.width, 
    'fullscreen=yes' // only works in IE, but here for completeness 
].join(','); 
    // and any other options from 
    // https://developer.mozilla.org/en/DOM/window.open 

var popup = window.open('http://www.google.com', 'popup_window', params); 
popup.moveTo(0,0); 

은 삼가 해 주시기 바랍니다 사용자가 정말로 원하지 않는 한 팝업을 열면, 그렇지 않으면 그들은 당신을 저주하고 사이트를 차단할 것입니다. ;-)

편집 : : Joren Van Severen이 주석에서 지적한 것처럼, 이것은 작업 표시 줄과 창 장식 (브라우저에 따라 가능할 수도 있음)을 고려하지 않을 수도 있습니다. 알고 있어야합니다. 높이와 너비 (단지 param이 fullscreen=yes)를 무시하는 것이 Chrome 및 Firefox에서도 작동하는 것 같습니다. 원래의 '전체 화면'기능은 파이어 폭스에서 불쾌한 것으로 인해 사용 중지되었지만 최대화로 대체되었습니다. 이것은 직접적으로 윈도우 최대화가 불가능하다고 말하는 https://developer.mozilla.org/en/DOM/window.open의 동일한 페이지에 대한 정보와 모순됩니다. 이 '기능'은 브라우저에 따라 지원되거나 지원되지 않을 수 있습니다.

+6

일반 최대화 된 창보다 큰 창을 엽니 다. 최대화 된 창의 높이는 screen.height - 작업 표시 줄의 높이입니다 (일부 창 장식도 마찬가지 임). –

+1

다음은 screen.availHeight resp입니다. screen.availWidth. 어쨌든 크기가 여전히 맞지는 않습니다 ... – cschuff

9
window.open('your_url', 'popup_name','height=' + screen.height + ',width=' + screen.width + ',resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes') 
+1

변경된 사항은 자체가 아니라 창입니다. 차이점이 뭐야? –

1

체크 아웃이 JQuery와 창 플러그인 : http://fstoke.me/jquery/window/

// create a window 
sampleWnd = $.window({ 
    ..... 
}); 

// resize the window by passed w,h parameter 
sampleWnd.resize(screen.width, screen.height); 
1

Firefox를 사용하는 경우 screen.widthscreen.height은 제대로 작동하지만 IE와 Chrome에서는 제대로 작동하지 않고 최소 크기로 열립니다.

그리고 예 : 10000height과 에 대해 너무 많이 지정했지만 최대 효과는 정확히 나타내지는 않았습니다. 내가 최대화 창을 열려면 현재에 을 찾을 수

3

가장 좋은 방법은 (인터넷 익스플로러 11, 크롬 49, 파이어 폭스 45)이다

var popup = window.open("your_url", "popup", "fullscreen"); 
    if (popup.outerWidth < screen.availWidth || popup.outerHeight < screen.availHeight) 
    { 
    popup.moveTo(0,0); 
    popup.resizeTo(screen.availWidth, screen.availHeight); 
    } 

https://jsfiddle.net/8xwocrp6/7/

주 1 : Edge (13.1058686)에서는 작동하지 않습니다. 그것이 버그인지 또는 설계된 것인지 확실하지 않습니다. (a bug report을 채웠습니다. 우리는 그들이 그것에 대해 말해야 할 것을 보게됩니다). 열려는 윈도우가 다른 도메인에있는 경우 moveTo 또는 resizeTo (액세스가 거부) 작동하지 않습니다 : 2이

if (navigator.userAgent.match(/Edge\/\d+/g)) 
{ 
    return window.open("your_url", "popup", "width=" + screen.width + ",height=" + screen.height); 
} 

참고 : 다음 해결 방법입니다.

관련 문제