我制作了一个脚本,我在其中检测到移动浏览器,当它真实时,则调用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
谢谢,
答案 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;
这是创建两个变量x
和y
的简写,分别是宽度和高度。也许这更像你正在寻找的东西,但我首先建议检查媒体查询,并确保你无法用CSS完成你想要做的事情。无法保证在任何浏览器中启用Javascript。
答案 1 :(得分:1)
您是否尝试过使用jQuery和
$(window).width();
$(window).height();
我从来没有遇到任何麻烦。