window.open(strUrl, strWindowName, [strWindowFeatures]);
strUrl === 要在新打开的窗口中加载的URL。
strWindowName === 新窗口的名称。
strWindowFeatures === 一个可选参数,列出新窗口的特征(大小,位置,滚动条等)作为一个DOMString。
遇到需求,打开新的窗口实现最大化,不遮挡计算机任务栏的那种。
依据MDN的解释,strWindowFeature
是一个可选参数。是一个字符串值,这个值列出了将要打开的窗口的一些特性(窗口功能和工具栏) 。 字符串中不能包含任何空白字符,特性之间用逗号分隔开。
strWindowFeature
中的fullscreen
属性在各大浏览器中都是不被支持的,反正咱也不知道它有什么用,要实现上述的需求,就需要设置strWindowFeature
中的宽高属性,来控制窗口的尺寸。
需要强调的一点是在strWindowFeature
中设置的宽高属性,影响的是新打开窗口的 DOM 的宽高,并不是整个浏览器窗口的宽高,所以如果使用了下面的方式,就会出现窗口将任务栏挡住的情况。
window.open(
'module.html',
'title',
`
left=0,
top=0,
width=${window.screen.availWidth},
height= ${window.screen.availHeight},
scrollbars=no,
resizable=yes,
toolbar=no
`);
这是因为,window.screen.availHeight
的值是计算机屏幕的高度减去任务栏高度之后的值,在我的电脑(11920*1080)上是1040,当设置高度等于这个值的时候,即设置了打开的新窗口的 DOM 的高度为1040。经过测量,新窗口中除了 DOM 之外的高度(如下图)为60px,所以最终计算的浏览器窗口的高度应该是1100,经过测试发现,在chrome中,如果新窗口最终计算的高度是大于屏幕的高度,它会自动的将新窗口的高度限制在与屏幕高度相同的尺寸,也就是说上述代码最终打开的窗口的高度为1080,和整个屏幕一样高,正好是将任务栏挡住了。
所以在设置高度的时候需要将这快高度减去,才是我们需要设置的 DOM 的高度。代码如下:
window.open(
'module.html',
'title',
`
left=0,
top=0,
width=${window.screen.availWidth},
height= ${window.screen.availHeight - 60},
scrollbars=no,
resizable=yes,
toolbar=no
`);