Javascript 在iPhone上查看完整网站,而不是手机版本

Javascript 在iPhone上查看完整网站,而不是手机版本,javascript,iphone,redirect,mobile-website,Javascript,Iphone,Redirect,Mobile Website,我有一个脚本,可以检测您是否是iPhone用户,并重定向到更友好的iPhone页面 <script type="text/javascript"> if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) { location.replace("http://domain.com/iphone/"); } </script>

我有一个脚本,可以检测您是否是iPhone用户,并重定向到更友好的iPhone页面

<script  type="text/javascript">
    if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) 
    {
        location.replace("http://domain.com/iphone/");
    }
</script> 

if((navigator.userAgent.match(/iPhone/i))| |(navigator.userAgent.match(/iPod/i)))
{
位置。替换(“http://domain.com/iphone/");
}
这很有效,但有一个问题。为用户提供查看整个网页的能力是惯例。但是,如果我链接到根目录,显然重定向会将它们发送到移动版本


如果点击
/iphone/
中的链接,他们可以进入
/
并停留在那里。

当用户到达时,确定他们的浏览器类型-移动或完整-并使用此值设置cookie。使用此cookie值决定要显示的站点版本。正如您所提到的,向移动用户提供指向“完整”站点的链接,但如果他们单击该链接,请运行快速脚本将cookie更新为“完整”值,然后将他们重定向到完整站点。他们的cookie现在已设置为完整站点,因此他们不会返回到移动站点


现在,如果cookie是一个问题,您可以使用类似PHP的东西来设置会话值,以保持会话的完整/移动状态,但这可能超出了原始问题的范围。

查询字符串就是解决方法(正如前面其他人所说)。看看Facebook,如果你点击移动站点上的“完整站点”链接,它会重定向到www.Facebook.com/login.php?m2w-m2w可能是MobileToWeb,这将阻止该站点将用户重定向到移动站点。

你可以不用中间脚本,通过使用诸如“?i-want-to-use-the-main-site=1”这样的查询字符串来实现这一点(显然没有XD复杂),如果存在该查询字符串,则设置cookie;如果cookie或查询字符串均不存在,则重定向。如果cookie已关闭,则只需在查询字符串中设置它:
?preventMobileDirect=true
或something@Kolink:这是真的。我是用PHP思考的,不是JavaScript,但这两种方式都可以。我会修改它但他回答说,这更符合原始问题的精神。@Joel:如果用户关闭了Cookie,那么如果您有一些服务器端脚本可以使用,那么您可以使用会话值。是的,注意到。但是,问题是所有其他锚都将链接到href=“/”。因此,除非使用cookie,否则用于维护状态的查询字符串将无法工作。它可能会在第一次请求时工作,但在用户浏览到另一个页面,然后单击“返回主页”时不会工作。系统将提示他们再次切换到移动站点。