如果没有屏幕,screen.width的值是多少?例如机器人

时间:2013-11-26 12:17:15

标签: javascript screen conditional-statements

我有一个条件if语句,它应该检测客户端是否有屏幕尺寸(而不是机器人),但似乎总是返回true:

var screenWidth = screen.width,
    screenHeight = screen.height; // Used elsewhere

if (screenWidth >= 1) {

    // Collate screen size

} else {

    // Do other stuff

}

正如我所说,上方的代码段始终返回true ,并且会运行“整理屏幕尺寸”代码。

我试过

if (screenWidth) { ...
if (screenWidth != null) { ...
if (screenWidth != '') { ...
if (screenWidth === '') { ...
if (typeof screen === 'object') { ...
if (typeof screenWidth === 'number') { ...

一切都没有成功。

然而在我的文本文件(我知道的老学校)中,我得到以下内容:

1385466873 |   |  x  |  |
                ^

这让我觉得分配给变量的值是空的??

作为参考,我为“真正的”浏览器提供以下内容:

1385465703 | Mac OS X 10.8.4 | 1440 x 900 | undefined | MacIntel
                               ^^^^

在此处查看更多内容:http://browsertrend.info/client.txt


更多信息:

将screen.width typeof添加到输出后,我现在得到:

1385485905 | Windows 7 | number | 1200 x 1600 | undefined | Win32
                         ^^^^^^

没有,如下所示:

1385485903 |   |  |  x  |  | 
                ^

所以一定要测试:

if (typeof screenWidth === 'number') { ...

应该有用吗?


提前致谢。

2 个答案:

答案 0 :(得分:0)

就个人而言,我对Google Bots没有太多经验,对我来说知道帮助的信息太少。

但是,这个article可能很方便

另外,我想建议,不要写2个条件语句,你可以简单地写:

if (screenWidth) { ... }

在您的浏览器控制台中尝试一下,然后与您的浏览器进行比较,看看尝试真相测试;设置

screenWidth='';
if (!screenWidth) { alert('empty string fails truth test') }

screen=null;
if (!screenWidth) { alert('null fails truth test') }

答案 1 :(得分:0)

因为无论您的客户端大小是什么,屏幕始终会返回您的计算机屏幕大小。