获取Chrome浏览器宽度(IGNORING Scrollbars)

时间:2011-07-08 09:49:57

标签: jquery google-chrome

我需要Chrome浏览器窗口的宽度,我当前的代码是:

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

我是从包含滚动条的页面调用此内容,但我需要将其作为Chrome浏览器的全部宽度,而不是滚动条。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

退房:

window.screen.availWidth

我在一个doc中发现了这个: 返回窗口可用的水平空间量(以像素为单位)。

它比我大吗? this.width`。

答案 1 :(得分:0)

难道你不能只添加15px来使它正确吗?

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:0)

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

不幸的是,我找不到一个很好的方法来获取它,所以这里做一些hacky方式对我有用并可能帮助其他人:

CSS:

.no-scroll{ overflow:hidden; }

JS(假设jQuery):

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

基本上,当你通过禁止页面滚动来计算页面的宽度时,你会暂时隐藏滚动条 - 这在我的Chrome中运行良好,没有明显的跳跃,但显然你的里程可能非常依赖在你的机器的速度和东西。