我有一个需要将移动用户重定向到移动网站的网站,但是由于这些网站托管在不同的地方,我无法设置 cookie 来记住他们是否是从移动网站引导的。因此有一个连续的循环。
我现在要做的就是在用户在手机上查看时显示一个弹出窗口,为他们提供在手机上查看网站或取消查看完整网站的选项。
我知道这在 Javascript/jQuery 中是可能的,但我不确定如何去做。
有人可以帮我吗?
谢谢
我有一个需要将移动用户重定向到移动网站的网站,但是由于这些网站托管在不同的地方,我无法设置 cookie 来记住他们是否是从移动网站引导的。因此有一个连续的循环。
我现在要做的就是在用户在手机上查看时显示一个弹出窗口,为他们提供在手机上查看网站或取消查看完整网站的选项。
我知道这在 Javascript/jQuery 中是可能的,但我不确定如何去做。
有人可以帮我吗?
谢谢
试试这个...
// Check for mobile user agent
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
//alert("MOBILE DEVICE DETECTED");
} else {
//alert("NO MOBILE DEVICE DETECTED");
}
您只需将弹出窗口添加到您的 HTML,默认隐藏它,如果它是使用 CSS 的移动设备,则显示它。
/* hidden on default */
div#popup { display: none; }
/* use a media query to filter small devices */
@media only screen and (max-device-width:480px) {
/* show the popup */
div#popup { display: block; }
}
就性能而言,这是迄今为止最好的选择。所有现代手机都支持媒体查询,因此您也不会有任何问题。
只需添加两个链接,要求用户访问桌面站点或移动站点。如果他选择桌面站点,您可以使用服务器端语言将弹出窗口排除在外,或者使用 javascript 删除弹出窗口。
您可以检查用户代理。在这里您可以获得详细信息。
这是我过去用来检测移动设备的一些代码:
var ua=navigator.userAgent.toLowerCase();
var isMobile =
screen.width < 500 ||
ua.indexOf('mobile')!=-1 ||
ua.indexOf('iphone')!=-1 ||
ua.indexOf('ipod')!=-1 ||
ua.indexOf('blackberry')!=-1 ||
ua.indexOf('windows phone')!=-1 ||
ua.indexOf('zunewp7')!=-1) &&
ua.indexOf('tablet')==-1 &&
ua.indexOf('playbook')==-1 &&
ua.indexOf('webos')==-1 &&
ua.indexOf('ipad')==-1;
这应该会检测到 iPhone、iPod、Blackberries、Windows Phone、ZuneWP7、大多数 android 手机和许多其他手机。对于大多数 android 平板电脑、Blackberry Playbooks、WebOS 设备、iPad 和许多其他平板电脑来说,这将是错误的。