window.open()打开新的标签页,不遮盖任务栏最大化显示

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
	`);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值