首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有脚本(PHP)或服务器配置(Nginx)的情况下,如何检测移动设备(和/或移动cookie)?

在没有脚本(PHP)或服务器配置(Nginx)的情况下,如何检测移动设备(和/或移动cookie)?
EN

Stack Overflow用户
提问于 2011-09-21 07:31:22
回答 2查看 3.1K关注 0票数 4

我们即将推出我们网站的移动版本。我们的完整网站和移动网站只是在主题上不同,即URL是相同的,只是前端的不同。

当用户访问我们的网站时,我们需要做到以下几点:

1.检查cookie (移动==真或假),以确定是否已经定义了完整的或移动的首选项(通过用户手动或在我们的终端检测)。

2.如果没有设置移动cookie,则在第一页视图中检测用户的设备,并将移动cookie设置为true或false。

3.基于#1和/或#2的结果,提供适当的体验,无论是完整的还是移动的。

最初,我使用PHP来检测工作正常的设备。但是,我们的站点使用主页和其他页面上的完全HTML缓存(.html文件被写入我们web根目录中的一个文件夹中,如果Nginx发现了它们,而不是通过page进行的请求-每15分钟清除一次),所以我不能依靠PHP从用户入口的主要点(据我所知)从用户入口的主要点检测移动设备。

由于不能依赖PHP,然后我将移动cookie检查和设备检测放在Nginx配置文件中(在开发过程中,Apache在本地进行,由我们的服务器人员为Nginx翻译)。然而,我们的服务器管理人员回复说,新的Nginx配置文件对性能的影响很大(而“性能命中”在我们的办公室是一个4个字母的词)。

基本上,我被告知主页的完整HTML缓存必须保持在原处,而且我根本不能更改配置文件。考虑到上面的限制,是否还有另一种检测cookie/设备的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-22 21:21:41

你可以使用javascript。

试试这个:http://detectmobilebrowsers.com/

票数 6
EN

Stack Overflow用户

发布于 2011-09-22 21:26:27

我以前在CSS媒体查询和JavaScript中使用过这个巧妙的技巧.

就在您的站点关闭<body>标记之前:

代码语言:javascript
复制
<div id="mobiledetect" style="display: none;"></div>

在CSS文件中:

代码语言:javascript
复制
@media screen and (max-device-width: 768px) {
  #mobiledetect {
    text-transform: uppercase;
  }
}

在您的JavaScript文件中(依赖于jQuery,但可以修改它):

代码语言:javascript
复制
$(function() {
  $is_mobile = false;
  if($('#mobiledetect').css('text-transform') == 'uppercase') {
    $is_mobile = true;
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7496118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档