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

Screen Width Issue when using different browsers on Hand Held/Smart Devices

本文关键字:浏览器 屏幕 问题 智能      更新时间:2023-09-26

我制作了一个脚本,在其中检测移动浏览器,当它为真时,getwidth调用JS函数,并根据访问者的屏幕宽度将访问者重定向到某个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。

请让我知道哪种是检测手持/智能设备屏幕宽度的最有效方法。所以我可以根据屏幕宽度完美地进行重定向。

要测试的网址:http://radiations3.aiksite.com/home.html

谢谢

,在我看来,你不应该使用Javascript,而应该使用CSS。 您是否调查过媒体查询? 这是检测屏幕宽度并相应地提供不同样式的最跨浏览器方法。

如果您不想更改样式,而是按照您所说的重定向(如果必须的话),那么我建议使用以下代码(代表 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。

你有没有尝试过使用jQuery和

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

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