2012-08-10 42 views
5

我已经创建了一个脚本,在该脚本中,我正在检测移动浏览器,当它的真实时,JS功能getwidth被调用并将访问者重定向到某个URL他的设备的屏幕宽度的基础。 我所使用的检测基本JS方法即screen.width检测屏幕宽度在手持/智能设备上使用不同浏览器时的屏幕宽度问题

我面临的问题是,不同的屏幕宽度就是用不同的browsers.Like返回我有一个平板(4.0.3的Android),其实际屏幕宽度是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。

请让我知道哪个是检测手持/智能设备屏幕宽度的最有效方法。所以我可以在屏幕宽度的基础上完成重定向。

URL进行测试:http://radiations3.aiksite.com/home.html

感谢,

回答

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媒体查询!许多移动设备不使用JavaScript(或者默认情况下已将其打开)。随着今天存在的设备变化的数量,大多数开发人员现在认为尝试和使用JS嗅探来迎合特定平台是不好的做法。那里可能有100个屏幕尺寸,谁知道?如果你对如何在没有JavaScript的情况下完成移动兼容站点感兴趣(或者至少不依赖JavaScript被启用),可以尝试研究“响应式网页设计”。这个想法是使用CSS媒体查询调整您的页面以适应任何屏幕大小。 – BenSwayne 2012-08-12 16:02:57

+0

@soft genic:这是否回答你的问题? – cereallarceny 2012-09-13 06:08:35

+0

@cereallarceny我使用了媒体查询,他们也获得了相同的屏幕尺寸,这是由javascripting返回的,因为它依赖于浏览器的大小而不是实际的屏幕大小。 – 2012-11-29 22:38:32

1

你有没有尝试过使用jQuery和

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

我从来没有使用这些有任何麻烦。

相关问题