检测多个监视器的屏幕宽度

Pra*_*kar 10 javascript screen-resolution

我的网站经过优化(固定宽度),适用于1024x768布局.对于分辨率宽度为1280或更高的人,我计划在页面的任一侧添加垂直横幅.

使用screen.width,我可以很容易地做到这一点.但是在使用多台显示器的机器上进行尝试时遇到问题.

让我们假设下面提到的场景:
监视器1(主显示器) - 分辨率为1024 x 768
监视器2(辅助显示器) - 分辨率为1440 x 900

screen.width总是将宽度显示为1024,而不管我浏览页面的显示器.如果我将主监视器更改为监视器2,则反转这些值.

这对于具有1024x768分辨率作为主分辨率的人来说尤其是一个大问题.这意味着在这种情况下我可能会丢失横幅广告展示次数.

我真的很感激任何帮助.

小智 7

尝试查看window.innerWidth(屏幕上网页的宽度)而不是window.screen.width


Pra*_*kar 3

感谢您的回复 黄昏。帮助我编译了以下函数,为我解决了问题。

function getBrowserWith()
{
    if(($.browser.msie == true && $.browser.version == '9.0') || $.browser.webkit == true || $.browser.mozilla == true)
        return window.innerWidth;
    else if(($.browser.msie == true) && ($.browser.version == '7.0' || $.browser.version == '8.0'))
        return document.documentElement.clientWidth;
    else
        return screen.width;
}
Run Code Online (Sandbox Code Playgroud)

重要笔记

  1. 需要 jQuery 1.4+
  2. 请注意,上述功能仅针对 IE7+、FF7+ 和 Chrome16+ 浏览器进行了测试。

  • 这不会给出监视器/屏幕的宽度或高度。它只给出窗口宽度或窗口高度! (4认同)