javascript - 检测移动语法

标签 javascript php

我想为手机显示略有不同的内容/布局,因此我使用 PHP/Javascript 设置标志:

<script type="text/javascript">

  if (screen.width <= 700) 
  {
  "<?php $mob=1; ?>";
  }

</script>

但这似乎不起作用,语法正确吗?

谢谢。

最佳答案

您需要了解客户端上发生的情况与服务器上发生的情况之间的差异。

您的 JavaScript 代码正在客户端上运行。到那时,您的 PHP 代码已经完成运行,并生成发送到浏览器的输出。

例如,会发生以下情况:

  1. 浏览器向服务器发送请求
  2. 服务器运行您的 PHP 代码来生成响应
  3. 响应已发送至浏览器
  4. 浏览器呈现响应并运行其中包含的任何 JavaScript

因此您的 JavaScript 代码无法直接设置 PHP 变量。

有关客户端与服务器的更多信息,请参阅 this question and its answers .

如果您需要知道 PHP 代码中的屏幕分辨率,this question and its answers tell you why you can't do that and what to do instead .

但理想情况下,让 PHP 提供内容,然后使用 CSS 媒体查询来选择如何在较小的页面大小上设置其格式(包括是否隐藏其中一些内容):

@media screen and (max-width: 700px) {
    /* These rules only apply when display (vs. printing, etc.)
       on a page with a width of 700px or less
    */
}

这样做的一个优点是它是动态的:如果用户将移动设备重新定向为横向模式并且现在宽度超过 700 像素,您的内容将以更大的格式显示,而无需从服务器重新请求。同样,在桌面上,如果有人开始使用 1000 像素宽的窗口,然后将其缩小到 600 像素,您的内容也会进行调整,而无需向服务器重新请求。 (你可能知道,但这就是所谓的“响应式设计”。)

关于javascript - 检测移动语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470648/

相关文章:

javascript - 如何使用简单的 javascript 过滤 html 表?

php - 如何隐藏/删除提交按钮上的文本?

php - 当我在我的 Mac (OS X 10.6 Snow Leopard) 上使用本地服务器时,我在哪里保存我的 HTML 和 PHP 文件

php - 错误 MysqliDb::$_paramTypeList

javascript - Angular 2合并相同的变量号

javascript - 如何使用 JQUERY 订购 div

javascript - onpropertychange 检测用户操作

javascript - 完成当前网页的相对 URL

php - Slim Php Mysql Put方法空值,想更新4列,但只更新了1列,但结果显示成功

php - 将 PHP 日期发送到 JavaScript 日期格式