0

我想要一个主要的桌面网站,并能够重定向到移动和电视网站。我在网上找到了一些移动网站的代码,但我不知道如何为电视做。以下是手机版:

<script type="text/javascript">
if (screen.width <= 699) {
document.location = "index-mobile.html";
}
</script>

我对电视的想法是screen.width >= 1280(720p 的标准宽屏宽度),但即使是最小的电脑屏幕也会包含在其中。有没有办法在不使用用户代理的情况下做到这一点,因为我想包括所有游戏机、机顶盒、智能电视等,而且我无法为每个用户代理。我想过这样做screen.height == 720 or screen.height == 1080,但这将包括一些显示器并排除一些国际电视。

4

2 回答 2

3

您可以使用以下方法来实现您的目标:

http://modernizr.com/

Modernizr 是一个特征检测库。与设备检测相比,实现特征检测通常是更好的做法。

由于有大量的可能性,我建议不要使用屏幕高度和宽度。如果您重新考虑基于特征进行区分的方法,您也许可以依靠 Modernizr 之类的层来为您处理复杂性。

例子

这是 Modernizr 使用媒体查询的示例:

if(Modernizr.mq("only handheld") === true){
  //Redirect to mobile site
}else if (Modernizr.mq("only tv") === true){
  //Redirect to TV
}else{
  //Anything else to the desktop
}

这是一个媒体查询参考。我不确定对我使用的媒体查询的支持,但如果你看看下面的内容,你可能会为你完成这项工作。

https://developer.mozilla.org/en-US/docs/CSS/Media_queries

于 2012-08-17T19:48:35.513 回答
0

我最近不得不处理与移动设备上的屏幕尺寸有关的类似问题。51Degrees.mobi 有一个可以处理屏幕大小检测的开源 Java 解决方案。API 很容易实现,他们在这里有一个指南。我基本上修改了他们指南中的代码来处理屏幕大小:

public static void main(String[] args) {
    Provider p = null;
    try {
        p = Reader.create();
    } catch (BinaryException e) {
        e.printStackTrace();
    }

    BaseDeviceInfo b = p.getDeviceInfo("ENTER USERAGENT HERE");
    String width = b.getFirstPropertyValue("ScreenPixelsWidth");
    String height = b.getFirstPropertyValue("ScreenPixelsHeight");
}

这将为您提供 x 和 y 屏幕分辨率值,然后您可以使用它们。我相信他们的高级版本可以检测到电视/游戏机。希望这可以帮助。

于 2012-08-21T10:19:13.273 回答