5

我制作了一个脚本,在其中我正在检测移动浏览器,当它为 true 时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

谢谢,

4

2 回答 2

8

嗯,听起来你不应该使用 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;

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

于 2012-08-12T00:51:17.590 回答
1

您是否尝试过使用 jQuery 和

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

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

于 2012-08-18T18:24:56.603 回答