我想为手机显示略有不同的内容/布局,因此我使用 PHP/Javascript 设置标志:
<script type="text/javascript">
if (screen.width <= 700)
{
"<?php $mob=1; ?>";
}
</script>
但这似乎不起作用,语法正确吗?
谢谢。
最佳答案
您需要了解客户端上发生的情况与服务器上发生的情况之间的差异。
您的 JavaScript 代码正在客户端上运行。到那时,您的 PHP 代码已经完成运行,并生成发送到浏览器的输出。
例如,会发生以下情况:
- 浏览器向服务器发送请求
- 服务器运行您的 PHP 代码来生成响应
- 响应已发送至浏览器
- 浏览器呈现响应并运行其中包含的任何 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/