2012-04-24 57 views
37

我使用Javascript的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) – 2012-04-24 11:46:56

+0

@Juren Thelen。正如我所提到的,即使在给定大的高度和宽度之后,它也不会给出实际最大化的效果。 – 2012-04-24 11:49:25

+0

@Jürgen我认为这可能是答案。 – ThdK 2012-04-24 11:49:38

回答

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在评论中指出的,糟糕的是,这可能不考虑任务栏和窗口装饰(可能依赖于浏览器的方式)。意识到。看起来,忽略高度和宽度(只有参数是fullscreen=yes)似乎可以在Chrome和Firefox上运行;原来的“全屏”功能在Firefox中因为令人讨厌而被禁用,但已被最大化取代。这直接与https://developer.mozilla.org/en/DOM/window.open相同的页面上的信息相矛盾,其中说窗口最大化是不可能的。根据浏览器的不同,这个“功能”可能会也可能不会被支持。

+6

这会打开比常规最大化窗口更大的窗口。最大化窗口的高度是screen.height - 任务栏的高度(以及一些窗口装饰看起来也是如此)。 – 2013-07-24 11:24:42

+1

这是screen.availHeight分别。 screen.availWidth。反正尺寸仍然不完全适合... – cschuff 2014-11-03 07:47:20

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

唯一改变的是窗口而不是自我。有什么不同? – 2012-04-24 11:53:25

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浏览器中,它们无法正常工作,而是以最小尺寸打开。

是的,我也试过给heightwidth这两个数字过大,如10000,但不是最大化的效果。

3

我可以在目前打开最大化的窗口中找到最好的解决办法是器(Internet Explorer 11时,Chrome 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 :它在边缘(13.1058686)上不起作用。不知道它是否是一个错误,或者它是否符合设计(我填充了a bug report,我们将看到他们对此有何评论)。这里是一个解决办法:

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

注2moveToresizeTo将无法​​正常工作(拒绝访问),如果你要打开的窗口,是另一个领域。