2011-07-08 67 views
3

我需要的Chrome浏览器窗口的宽度和我当前的代码获取Chrome浏览器的宽度是:(忽略滚动条)

$("input#myHiddenValue").val($(window).width());

我称这种由具有滚动页面,但我需要它要成为Chrome浏览器的全宽而不是的滚动条。

任何人都可以帮忙吗?

回答

3

退房:

window.screen.availWidth 

我发现这在DOC: 返回的水平空间中的像素提供给窗口的数量。

它比我的? this.width`。

+0

这给了我我需要的东西。值得注意的是,这给出了最大的浏览器宽度,所以如果你打开一个较小的窗口,它仍然会给出宽度,因为它会是全屏。伟大的eBayer,谢谢。一个++++。 – pfeds

0

难道你只是在15px上添加它是正确的吗?

+2

假设滚动条总是15px是否安全?任何Windows设置会改变它,还是可以在Chrome中更改? – pfeds

0

试试这个

$("input#myHiddenValue").val($(body).width()); 
0

虽然window.screen.availWidth好一些,它没有解决能够得到正确的浏览器宽度的准确数量的核心问题,是不可靠的,因为你永远不知道是否有人会在比他们的屏幕更小的窗口中运行它。

不幸的是,我没能找到得到它的好方法,所以这里的有点这样做,对我的作品的哈克的方式,可能会帮助别人了:

CSS:

.no-scroll{ overflow:hidden; } 

JS(假设的jQuery):

$('body').addClass('no-scroll'); 
var accurateWindowWidth = $(window).width(); 
$('body').removeClass('no-scroll'); 

基本上,你隐藏滚动条的一瞬间,而你通过禁止页面滚动计算页面的宽度 - 这工作WEL我在Chrome中没有明显的跳跃,但显然你的里程可能取决于你的机器的速度和东西。