关于跨平台browser窗口大小的问题
2012-05-30 08:37
260 查看
最近看到一篇文章,是讲浏览器的。其中有一点是讲窗口大小的,我感觉很好,我这里也分析一下
窗口大小:
跨浏览器确定一个窗口的大小不是一个简单的事。IE9,FF,safari,Opera,Chrome均为此提供了4个属性:innerWidth,innerHeight,outerWidth,outerHeight
在IE9 safari和FF中,outerwidth和outerHeight 返回浏览器窗口本身的尺寸。但在Opera中,这两个属性的值却表示页面的视图容器的大小,也就是viewport的大小,很奇怪的是
innerWidth和innerHeight则表示该容器中页面视图区的大小。在Chrome这两点都返回同样的值,即viewport的大小。
那么确定窗口的大小就是一点很难的事情了。那么怎么办呢?
在IE,ff,Opera,Chrome,safari中,document.documentElement.clientWidth和docuemnt.documentElement.clientHeight中保存了视图页面的视口的消息。但在IE6中,
这些属性必须是标准模式下才有效,如果是混杂模式,就必须通过document.body.clientWidth和document.body.cilentHeight取得相同信息。而对于混杂模式下的Chrome,则无论通过
document.documentElement,还是document.body中的clientWidth和clientHeight属性,都可以取得视窗的大小。
下面提供跨平台的代码
Js代码
var pageWidth = window.innerWidth,
pageHeight = window.innerHeight;
if(typeof pagewidth != "number"){
if(document.compartMode == "CSS1Compat"){
pageWidth = document.documentElement.clientWidth;
pageHeight = document.docuemntElement.clientHeight;
}else{
pageWidth = document.body.clientWidht;
pageHeight = document.body.clientHeight;
}
}
相关文章推荐
- vim关于winmanager集成MiniBufExplorer后FileExplorer窗口大小的问题
- VIM关于winmanager中FileExplorer窗口大小的问题
- 关于Silverlight自适应窗口大小的问题!
- 关于监听浏览器窗口大小失效的问题
- 关于修改Matlab2014a菜单栏和命令窗口字体大小问题
- 一个关于新窗口自动调节大小的问题
- VC++6.0关于分割窗口的CSize初始大小不起作用问题的解释
- vim关于winmanager集成MiniBufExplorer后FileExplorer窗口大小的问题
- 关于Integer大小比较的问题
- 关于layer.js 弹出框表单提交关闭父窗口出现表单提交失效的问题
- (MFC)关于点击窗口1的button弹出对话框2,关闭对话框2,需要点击两次对话框1的button才能弹出对话框2的问题
- 关于系统设置分辨率比例影响到网页宽度大小的问题
- 关于ajax载入窗口使用RedirectToAction在窗口显示的问题
- 关于window.open弹出窗口被阻止的问题
- 关于使用mini-KMS_Activator破解Office2010时CMD窗口一闪而过的问题
- 关于LinkButton.enabled = false时,去掉javascript中弹出窗口的问题
- 关于调用程序的窗口信息处理问题
- 关于CListBox和CComboBox修改窗口Style的问题
- 关于VC6.0 MFC+ATL做出的COM,其内部的windows窗口不能以XP Theme模式显示的问题彻底解决
- 关于类得数据成员的大小问题。求解。