我正在构建一个带有联系表单和收据页面的移动优化页面。 在我们的CMS中,我们有一个具有相同内容的“桌面”页面,但我无法根据CSS,重定向或其他任何类型编辑桌面页面。
移动页面将用于仅限移动设备的广告系列。但是,我想确保,如果某人最终从桌面或平板电脑进入页面,则会将其重定向到桌面版本。
我见过这种脚本:
<script type="text/javascript">
<!--
if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
但是,嘿,手机现在有更高的分辨率,所以反过来“如果&gt; = 699然后重定向到桌面网站”,可能对我不起作用,是吗?三星Galaxy s 3几乎拥有桌面分辨率...... 使用媒体查询实际上并不是一种选择,因为这是两个单独的站点(由于旧的,僵硬的CMS)。 因此,如何重定向非移动设备和平板电脑用户,而任何移动电话上的任何人都停留在移动页面页面上。
请注意 - 我们的服务器不运行PHP,我无法在服务器端文件中进行更改。我认为我需要一些JavaScript。
答案 0 :(得分:2)
这是我使用的一个很好的片段:
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i) ? true : false;
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i) ? true : false;
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i) ? true : false;
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
if (isMobile.any()) {
window.location = 'http://m.example.org';
}
答案 1 :(得分:0)
我从未真正理解为什么这么多人都在寻找“移动设备”。作为前端开发人员,你实际上不应该关注这样的移动设备,就像你正在寻找浏览器供应商那样,根本不是。
为什么不检查功能呢?创建一个动态,渐进的增强型Web应用程序,以适应其当前环境。无论这是否意味着触摸事件或标准事件,屏幕分辨率或其他事情。
但是,如果您坚持检查浏览器或设备,那么最好的镜头仍然是位于userAgent
对象中的navigator
字符串,请参阅@ MihaiIorga的答案。
但是,我们应该尽量避免在浏览器和/或设备的完全不同的应用程序/项目中使用“sepparation”。我理解这一点,如果已经有一个或多或少“庞大”的应用程序或网站需要在很短的时间内在另一台设备上进行探测性工作,但从长远来看,你不会对这种做法做很多好事。将来会发布更多设备/浏览器(版本)/ {我无法想到的东西}。
答案 2 :(得分:0)
// To Check if Mobile browser,then redirect to mobile version website otherwise open web url.
//alert(navigator.userAgent);
// userAgent gives all info related to browser,os,device info
var index = navigator.appVersion.indexOf("Mobile");
if (index>0)
{ window.location.href='[mobile page url]'; }