我有一个可以检测到iPad并将其重定向到移动网站的JavaScript。我还有一个链接,允许用户离开移动网站查看完整的网站。但是,当他们点击链接查看完整网站时,JavaScript会再次触发并将其重定向回移动网站。我该如何解决?下面是我的JavaScript代码示例。
if ((navigator.userAgent.indexOf('iPad') != -1)) {
document.location = "http://www.sample.com/mobilego.aspx";
}
答案 0 :(得分:0)
使用sessionStorage
或localStorage
存储覆盖重定向的标记。
E.g。在移动网站上
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
来使覆盖持久化。
如果移动网站和主网站位于不同的服务器上,则他们将无法访问相同的存储。对此的一个解决方案是将参数添加到主页面的链接,并在主页面上检查脚本中的参数。如果参数存在,请像以前一样覆盖重定向,但也要设置上面的sessionStorage
或localStorage
项目以使其坚持。