有的时候我们希望新打开的浏览器窗口的大小能够正好放下内容,从而避免讨厌的滚动条和恼人的空白,毕竟这样比较美观。通常我们通过如下的javascript代码打开一个新的浏览器窗口:
window.open('page.html', null, 'toolbar=0,menubar=0,status=0,resizable=0');
|
为了让窗口的大小能够自适应page.html的内容,我们这里没有指定新窗口的高度和宽度,并且如果窗口不仅仅是包含已知大小的图像,还包含着文字和其它一些内容,那么除非到全部内容全部加载,否则我们无法得知它们所占的空间的大小。所以按照页面内容所占空间调整窗口大小的代码通常包含在这个窗口载入的页面中。下面将分别对FireFox和IE实现相关代码。
FireFox
Firefox特别设计有
DOMContentLoaded事件,它和通常所讲的load事件有所不同:
- load:页面加载后触发,不包含嵌在网页中的图像。
- DOMContentLoaded:页面完全加载后触发,包含嵌在网页中的图像。
和它类似的事件还有
DOMFrameContentLoaded,顾名思义:它等待嵌在页面中的页帧加载完毕。Firefox还提供有
window.sizeToContent()函数,它将根据页面内容调整窗口大小,刚好符合我们的要求。万事俱备,东风来也:
window.addEventListener("DOMContentLoaded", window.sizeToContent, true);
|
FireFox就是这样简单!
IE
没有摸索到切实可行的方法,网络上盛传的一些代码实际试用效果不佳。
结论
鉴于IE没有完美的解决方案,并且这种做法属于对用户的强制性措施,用户可以通过手动调整浏览器参数的方式使以上技巧无效,加上现在的浏览器可以定制成所有新打开的窗口都以table的方式呈现,故
不要采用本文所讲技巧!
阅读(4259) | 评论(1) | 转发(0) |