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

时间:2012-08-10 00:08:02

标签: javascript android jquery mobile smartphone

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

我面临的问题是在不同的浏览器中返回不同的屏幕宽度。就像我有一个平板电脑(Android 4.0.3),其实际屏幕宽度是800 PX,当我在默认浏览器上运行我的脚本然后它返回准确的屏幕宽度800px,但当我用不同的浏览器打开它然后它们返回不同的宽度,如UC浏览器返回740 PX(ISSUE 2: also when onload function i tried to return screen width on UC browser then it returns screen width as 0px and after page load when i call the same function again then it returns width=740px),当我在Opera Mini上运行脚本然后它返回宽度如441 PX。

请告诉我哪种方法可以检测手持/智能设备的屏幕宽度。所以我可以根据屏幕宽度完美地重定向。

TEST的网址:http://radiations3.aiksite.com/home.html

谢谢,

2 个答案:

答案 0 :(得分:8)

嗯,听起来我不应该使用Javascript,而是使用CSS。你看过media queries了吗?这是检测屏幕宽度的最跨浏览器方式,然后相应地提供不同的样式。

如果您不想改变样式,但按照您的说法重定向(如果必须),那么我建议使用以下代码(代表Andy Langton):

var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight;

这是创建两个变量xy的简写,分别是宽度和高度。也许这更像你正在寻找的东西,但我首先建议检查媒体查询,并确保你无法用CSS完成你想要做的事情。无法保证在任何浏览器中启用Javascript。

答案 1 :(得分:1)

您是否尝试过使用jQuery和

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

我从来没有遇到任何麻烦。