Javascript 在手持/智能设备上使用不同浏览器时的屏幕宽度问题

Javascript 在手持/智能设备上使用不同浏览器时的屏幕宽度问题,javascript,android,jquery,mobile,smartphone,Javascript,Android,Jquery,Mobile,Smartphone,我制作了一个脚本,在该脚本中,我检测到移动浏览器的错误,当它为真时,就会调用JS函数getwidth,并根据其设备的屏幕宽度将访问者重定向到某个URL。 我使用基本的js检测方法,即screen.width来检测屏幕宽度 我面临的问题是,不同的浏览器会返回不同的屏幕宽度。就像我有一台平板电脑(安卓4.0.3)其实际屏幕宽度为800 PX,当我在默认浏览器上运行脚本时,它会返回准确的屏幕宽度800px,但当我用不同的浏览器打开它时,它们会返回不同的宽度,就像UC浏览器返回740 PX一样(问题2:

我制作了一个脚本,在该脚本中,我检测到移动浏览器的错误,当它为真时,就会调用JS函数
getwidth
,并根据其设备的屏幕宽度将访问者重定向到某个URL。 我使用基本的js检测方法,即
screen.width
来检测屏幕宽度

我面临的问题是,不同的浏览器会返回不同的屏幕宽度。就像我有一台平板电脑(安卓4.0.3)其实际屏幕宽度为800 PX,当我在默认浏览器上运行脚本时,它会返回准确的屏幕宽度
800px
,但当我用不同的浏览器打开它时,它们会返回不同的宽度,就像UC浏览器返回740 PX一样(
问题2:当onload函数我试图在UC浏览器上返回屏幕宽度时,它返回屏幕宽度为0px,当我再次调用同一函数时,页面加载后,它返回宽度=740px
),当我在Opera Mini上运行脚本时,它返回宽度为441 PX

请告诉我哪种方法是检测手持/智能设备屏幕宽度最有效的方法。这样我就可以根据屏幕宽度进行完美的重定向

要测试的URL:


谢谢,

嗯,我觉得你不应该使用Javascript,而应该使用CSS。你研究过吗?这是最跨浏览器的方法来检测屏幕的宽度,然后相应地提供不同的样式

如果您不希望更改样式,而是按照您所说的重定向(如果必须),那么我建议(代表)使用以下代码:


这是将创建两个变量的缩写,
x
y
,这两个变量分别是宽度和高度。也许这更像您正在寻找的,但我首先建议检查媒体查询,并确保您正在寻找的内容不能用CSS完成。我不能保证在n任何浏览器。

您使用jQuery和

$(window).width();
$(window).height();

我在使用这些脚本时从来没有遇到过任何问题。

+1用于媒体查询!许多移动设备不使用JavaScript(或者默认情况下已将其关闭)随着当今存在的设备数量的变化,大多数开发人员认为尝试使用JS嗅探来迎合特定平台是不好的做法。有100个屏幕大小,谁知道呢?试着研究“响应式Web设计”。如果您对如何在没有JavaScript的情况下实现移动兼容站点感兴趣(或者至少不依赖于启用JavaScript)。我们的想法是使用CSS媒体查询调整页面以适应任何屏幕大小。@soft genic:这回答了您的问题吗?@Cerelarceny我使用了媒体查询,他们得到的屏幕大小与javascripting返回的屏幕大小相同,这是错误的,因为它取决于浏览器大小而不是实际的屏幕大小。@softgenic:正确,如果您正在查找屏幕大小,那么媒体查询将无法帮助您看到CSS没有那么大的控制力。如果您正在查找浏览器大小并根据该大小进行布局,那么媒体查询肯定是一个不错的选择。也许您应该回顾您的问题,因为听起来您正在查找媒体查询a询问。
$(window).width();
$(window).height();