有时候,由于某些需求,一些网页需要更大块儿的像素区域来展示更多更丰富的信息,这时可通过JavaScript对浏览器边框进行自定义“精简”,来达到这样的目的。
代码实现
我们可以调用如下的函数控制浏览器弹出自定义精简窗口。
效果如下图:
原理详解
关键的代码如下:
该函数的有三个参数,分别为新窗口的url、新窗口的标识name(String)、新窗口的特性值feature(String,逗号分隔),还返回该窗口对象的引用nenWindow,我们可以借此加一层判断,实现同时只可以有一个新窗口存在,如最上面的代码。
其中第三个参数可以自行选择设定。这里先普及一下浏览器页面上各元素的名称:
参照上面的图,便可通过window.open()
函数对新窗口的页面元素进行自定义。比如上面的resizable=yes, scrollbars=yes
,还有menubars,titlebars,location
等等。
这里支持4种风格的字符串配置风格:
- menubar=yes,toolbar=yes,scrollbars=no
- menubar=on,toolbar=on,scrollbars=off
- menubar=1,toolbar=1,scrollbars=0
- menubar,toolbar,scrollbars(写的有,不写的就没有)
更详细的参数说明请参考JavaScript开发手册
额外说明
- 某些情况下,用户对浏览器的设置可能导致某些特性按用户的设定来,而非js里的设定;
- 某些安全软件可能禁止了浏览器弹出新窗口;
- 调用window.open()方法以后,远程 URL 不会被立即载入,载入过程是异步的。(实际加载这个URL的时间推迟到当前脚本块执行结束之后。窗口的创建和相关资源的加载异步地进行。)