javascript:有多台显示器时查找屏幕分辨率

时间:2010-01-25 17:32:10

标签: javascript screen browser multiple-monitors screen-resolution

我正在使用这段代码来确定客户端屏幕分辨率,然后记录它

<input type="hidden" id="DFF63C7E-FB32-49AE-8ADA-3AB5C4834FB0" name="DFF63C7E-FB32-49AE-8ADA-3AB5C4834FB0"/>
 <input type="hidden" id="565C07CF-0D37-41DE-B47D-A247E9BD231B" name="565C07CF-0D37-41DE-B47D-A247E9BD231B" />
<script type="text/javascript" language="javascript">
         document.getElementById("DFF63C7E-FB32-49AE-8ADA-3AB5C4834FB0").value = screen.width;  
         document.getElementById("565C07CF-0D37-41DE-B47D-A247E9BD231B").value = screen.height;
</script>

在我的localhost中测试时工作正常,但我从生产日志中发现的是屏幕分辨率始终为480x640。有谁知道为什么会这样?

我做了一些挖掘,发现我可以更改主监视器的分辨率,无论我是否在主/辅助监视器中打开浏览器,它总是会给我主监视器的分辨率。

有没有办法根据浏览器打开哪个显示器来获得屏幕分辨率?

显然接下来的问题是,如果分辨率中途改变(例如从控制面板改变)或将浏览器从一个移动到另一个,是否有办法用JS检测/更新它?

3 个答案:

答案 0 :(得分:0)

  1. 可能是您的生产PC确实具有640 * 480的屏幕分辨率。有理由怀疑吗?
  2. Javascript无法从虚拟机中走出来一瞥真实主机,因此您必须通过检测屏幕分辨率的方式实现更新机制,无论它是什么。

答案 1 :(得分:0)

尝试这样来获取窗口的尺寸:

window.document.width //Get the width
window.document.height //Get the height

答案 2 :(得分:0)

将以下行添加到您的页面。

window.moveTo(0,0); window.resizeTo(screen.availWidth,screen.availHeight);" 

它会将窗口调整为全宽和高度..

例如使用

<body onload="window.moveTo(0,0); window.resizeTo(screen.availWidth,screen.availHeight);" >