【问题标题】:PHP include specific file if screen is touch device?如果屏幕是触摸设备,PHP是否包含特定文件?
【发布时间】:2014-07-16 22:37:10
【问题描述】:

我可以使用 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 检索该值。

谁能帮忙?

感谢任何建议

【问题讨论】:

  • jQuery 加载:if(touchScreen) { $("#result").load("sections/blog_widget_mobile.php"); } else { $("#result").load("sections/blog_widget.php"); }
  • navigator.msMaxTouchPoints 仅适用于 Microsoft,根据此 MS 文档 msdn.microsoft.com/en-us/library/ie/hh772144%28v=vs.85%29.aspx 将在 IE 11 中删除
  • 谢谢大家。这很有帮助!
  • @Xaxd jquery 有内置功能触摸屏吗?这是 JQuery 还是 JQuery Mobile?我没有使用 jQM
  • @bagofmilk 加载是标准 jquery。使用标准 javascript 检测触摸屏:

标签: javascript php mobile touch


【解决方案1】:

使用 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>

【讨论】:

  • 这很有趣,但我必须在文件中的特定点加载 php 文件。如果我使用它,那么它只会加载 php 文件,而不是我在 index.php 中的所有其他“包含”
  • 您可以将“document.body”替换为您希望加载博客小部件的索引部分的 div id。
  • 即 $("#blogwidget").load("sections/blog_widget_mobile.php" );会将 blog_widget_mobile 加载到
【解决方案2】:

即使我不建议这样做:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多