我有一个条件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') { ...
应该有用吗?
提前致谢。
答案 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)
因为无论您的客户端大小是什么,屏幕始终会返回您的计算机屏幕大小。