Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据屏幕大小确定设备?_Javascript_Mobile - Fatal编程技术网

Javascript 根据屏幕大小确定设备?

Javascript 根据屏幕大小确定设备?,javascript,mobile,Javascript,Mobile,我想有一个主要的桌面网站,并能够重定向到移动和电视网站。我在网上找到了一些手机网站的代码,但我不知道如何在电视上使用。以下是针对手机的建议: <script type="text/javascript"> if (screen.width <= 699) { document.location = "index-mobile.html"; } </script> 如果(screen.width=1280(720p的标准宽屏宽度),但即使是最小的计算机屏幕也会包括

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

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


如果(screen.width=1280
(720p的标准宽屏宽度),但即使是最小的计算机屏幕也会包括在其中。有没有一种方法可以不用使用用户代理就可以很好地做到这一点,因为我想包括所有游戏机、机顶盒、智能电视等,但我无法为每一个都提供用户代理。我想做的是
screen.height==720或screen.height==1080
,但这将包括一些显示器和一些国际电视除外。

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

Modernizer是一个功能检测库。通常,实现功能检测比设备检测更好

我建议不要使用屏幕高度和宽度,因为可能性非常大。如果您重新考虑基于功能进行区分的方法,您可能可以依靠Modernizer这样的层来处理复杂性

示例

以下是使用媒体查询的Modernizer示例:

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
}
这是一个媒体查询参考。我不确定我使用的媒体查询是否支持,但如果你看看下面的内容,你可能会发现这一点


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

Modernizer是一个功能检测库。通常,实现功能检测比设备检测更好

我建议不要使用屏幕高度和宽度,因为可能性非常大。如果您重新考虑基于功能进行区分的方法,您可能可以依靠Modernizer这样的层来处理复杂性

示例

以下是使用媒体查询的Modernizer示例:

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
}
这是一个媒体查询参考。我不确定我使用的媒体查询是否支持,但如果你看看下面的内容,你可能会发现这一点


最近,我不得不处理一个与移动设备屏幕大小相关的类似问题。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屏幕分辨率值,您可以使用这些值。我相信他们的高级版本可以检测电视/控制台。希望这会有所帮助。

最近,我不得不处理一个与移动设备屏幕大小相关的类似问题。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屏幕分辨率值,您可以使用它们。我相信它们的高级版本可以检测电视/控制台。希望这会有所帮助。

@JuanMendes我尝试了一下……我不确定是否支持我使用的媒体查询,但提供了一个起点。@JuanMendes我尝试了一下……我不确定是否支持med我使用了ia查询,但提供了一个起点。