Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用查看常规站点JavaScript的选项检测iPad设备_Javascript - Fatal编程技术网

使用查看常规站点JavaScript的选项检测iPad设备

使用查看常规站点JavaScript的选项检测iPad设备,javascript,Javascript,我有一个JavaScript可以检测iPad并将其重定向到移动站点。我还有一个链接,允许用户离开移动站点查看整个站点。但是,当他们点击链接查看整个站点时,JavaScript会再次启动并将其重定向回移动站点。我该如何解决这个问题?下面是我的JavaScript代码示例 if ((navigator.userAgent.indexOf('iPad') != -1)) { document.location = "http://www.sample.com/mobilego.aspx"; }

我有一个JavaScript可以检测iPad并将其重定向到移动站点。我还有一个链接,允许用户离开移动站点查看整个站点。但是,当他们点击链接查看整个站点时,JavaScript会再次启动并将其重定向回移动站点。我该如何解决这个问题?下面是我的JavaScript代码示例

if ((navigator.userAgent.indexOf('iPad') != -1)) {
    document.location = "http://www.sample.com/mobilego.aspx";
}

使用
sessionStorage
localStorage
存储覆盖重定向的标志

例如,在移动站点上

if (window.sessionStorage) sessionStorage.setItem("beenOnMobileSite",true)
在主站点上

if ((navigator.userAgent.indexOf('iPad') != -1
  && !sessionStorage.getItem("beenOnMobileSite")) {
    document.location = "http://www.sample.com/mobilego.aspx";
}
使用
localStorage
而不是
sessionStorage
使覆盖持久化


如果移动站点和主站点位于不同的服务器上,它们将无法访问相同的存储。一种解决方案是在主页的链接中添加一个参数,并在主页的脚本中检查该参数。如果参数存在,请像以前一样覆盖重定向,但也要像上面一样设置
会话存储
本地存储
项以使其保持不变。

设置一个表示他们想要完整版本的cookie,然后在重定向之前检查cookie。谢谢!这很有效。但是,如果我正在使用localStorage,而用户迁移到桌面站点并退出浏览器,当他们再次打开浏览器时,我如何将他们重定向回移动站点?如果您使用sessionStorage,我认为这会起作用,但我已经尝试过了,它甚至不允许我迁移到桌面站点。
sessionStorage
应该满足您的需要(请参阅)-尝试时会发生什么情况?当我尝试时,它会在我第一次访问该地址时将我指向我的移动站点。但是,当我点击离开mobilesite并转到全职的链接时,它会将我重定向回我的mobilesite.Nevermind。它起作用了。只是iOS的更新已经过时了,还有一个bug影响了Safari浏览器,但它可以在Google Chrome上运行。谢谢