2010-07-11 250 views
1

如何从脚本访问某个网站时替换屏幕分辨率?当自己的脚本连接到服务器时可以访问这些数据吗?屏幕分辨率

回答

3

举一个非常明确的答案:

  • 不能变化通过浏览器用户的屏幕分辨率。
  • 不能检索用户的解决方案作为任何普通HTTP请求的一部分。 (即:在PHP的$_POST超全球)
  • 可以使用JavaScript检索用户的屏幕分辨率,然后可以通过AJAX传回服务器。

作为一个最佳实践,您的网站应通过fixed, fluid, or elastic布局的独立解决方案。更改用户的解析度对用户来说是一个令人沮丧的体验,并且会使项目运行不佳。

请记住,许多平台也不能改变其分辨率。大多数移动设备,嵌入式平台和视频游戏控制台都有固定的分辨率。此外,投影机和电视通常具有非常具体的分辨率,因此它们的功能正常,因此调整这些设备的分辨率可能会造成严重破坏。

作为调整屏幕分辨率的替代方法,请查看em-driven layout。 em是CSS中与当前字体相关的度量单位。这允许您通过调整文档的字体大小(较大的字体大小将增加页面上其他所有内容的像素对像素大小)来动态调整布局大小及其内容大小。

需要注意的是,调整分辨率可以通过Windows上的ActiveX来完成,但只能在多个安全警告(并且只能在IE中的Windows上)下完成。这在任何情况下都不应该尝试。

+0

感谢您的回答。但我不需要使用分辨率构建网站!网站使用它来记住客人。我可以禁用JavaScript获取我的决议? – Ockonal 2010-07-11 08:25:34

+0

等等哇。你正在使用用户的决议作为记忆他们是谁的手段?如果他们的决议自己改变呢?或者如果他们连接第二台显示器?您也无法从浏览器中禁用屏幕分辨率更改。更好的方法是使用一个秘密字符串和他们的IP地址(使用HMAC)生成一个散列,并使用Sessions引擎和cookie一起使用。这就是为什么发明饼干的原因;如果你不需要,不要发疯。 – mattbasta 2010-07-11 18:51:52

+0

no,no =)我使用分辨率作为生成唯一散列和的元素之一。 – Ockonal 2010-07-12 07:52:08

0

你是说基于它认为用户的屏幕分辨率是什么网站正在改变其行为?这是a)不良行为,和b)客户端,所以用JavaScript或ActiveX控件等来完成。

如果你想让你的脚本模仿它,它必须解释JavaScript,运行ActiveX或其他。

网站没有自己的“屏幕分辨率”。它们呈现给浏览器的大小。这是HTML美的一部分。

+0

不,问题是另一个:网站记住客户端的屏幕分辨率。我必须改变这个决议。试想一下,你正在写一些访问某个页面的脚本。而且你不希望该页面会记住你的真实分辨率。 – Ockonal 2010-07-11 07:36:52

+1

同样,正如我所说的,网站无法通过HTTP获取客户端的屏幕分辨率(我的意思是,除了询问用户并让他们发布他们的答案之外)。这只能通过客户端脚本访问。如果您不运行客户端脚本,该网站将永远不会知道您的“解决方案”。 – Borealid 2010-07-11 07:38:34

1

这是我的答案,如果我正确理解你的问题。当用户访问您的网站时,无法更改用户的屏幕分辨率。

+0

应该注意的是,可以通过JS的'screen.height'和'screen.width'值来获取分辨率。 – mattbasta 2010-07-11 18:58:06