如果屏幕是触摸设备,PHP包含特定文件?

时间:2014-07-16 22:37:11

标签: javascript php mobile touch

我可以使用javascript来确定屏幕是否是触控设备,但我无法将其转换为PHP以包含特定文件。

<script>

function isTouchDevice() {
      return 'ontouchstart' in window || !!(navigator.msMaxTouchPoints);
}

if(isTouchDevice()) {
   document.getElementById('touch').value = 1;
} else {
   document.getElementById('touch').value = 0;
}


</script>
<body>
   <input type='hidden' id='touch' value='0'/>

<?php

  // This is where i need help 
  // and yes...i know the code below is not proper php its just what i want to achieve. 

   -- if ([touch screen is true]) then....
        include ("sections/blog_widget_mobile.php");
      else {
        include ("sections/blog_widget.php");
      }

?>

我找不到javascript函数isTouchDevice()的php版本,所以我认为最好的方法是将值应用于html元素并尝试通过php检索该值。

有人可以帮忙吗?

感谢任何建议

2 个答案:

答案 0 :(得分:2)

使用jQuery动态加载文件。使用javascript检测ontouchstart。

<script>
if('ontouchstart' in document.documentElement) { 
    $(document.body).load( "sections/blog_widget_mobile.php" ); 
} else { 
    $(document.body).load( "sections/blog_widget.php" ); 
}
</script>

答案 1 :(得分:0)

即使我不推荐这个:

如果您确实需要包含特定的PHP文件(eG为触摸屏用户执行额外的SQL查询),您可以测试$_SERVER['HTTP_USER_AGENT'] - 变量是否包含一些 - 经常使用的 - 用于移动设备的字符串用户代理。 This List可以帮到你。

当然,您手动需要找到这些(有许多不同的用户代理!)并不时更新它们。有些用户可能不会注册为&#34;触摸设备用户&#34;,主要是因为他们使用不寻常的浏览器。