【问题标题】:Mobile to Normal website Redirect移动到普通网站重定向
【发布时间】:2012-01-31 13:29:43
【问题描述】:

我有一个简历/简历网站,当用户访问我的网站并且屏幕分辨率低于 960 时,我通过此 JS 将他重定向到我的移动网站

    <script type="text/javascript">if (screen.width <= 960) {document.location = mobile.html";}</script>

我的问题是,如果用户想要访问普通网站并点击链接,javascript 将再次运行并将用户重定向回移动网站。解决此问题的一种方法可能是复制普通站点,比如说 index.html 和 index1.html 一个带有上面的代码,一个没有 JS,但我认为这个解决方案太愚蠢了。有什么办法可以解决这个问题?在您回答之前,请注意我无法访问 .htaccess 文件。

我的问题是,当用户以低于 960 的屏幕宽度访问我的网站时,会转到移动网站,但如果他想查看完整的网站,请按一个链接并重定向到完整的网站,无论屏幕宽度如何。

【问题讨论】:

  • 当用户点击“正常”站点时,检查是否存在一些cookie,如果存在,则不要重定向,在移动网站上,当用户想要被重定向到“正常”站点时, 在重定向之前创建一个 cookie。

标签: javascript mobile redirect


【解决方案1】:

想到两种方法:

  1. 使用 cookie,以便记住用户停留在完整网站上的偏好。在重定向之前创建/设置 cookie。
  2. 使用查询参数&lt;a href="index.html?fullsite=true"&gt;Full site&lt;/a&gt;(或类似参数),您只能在从mobile.html 回到正常站点的链接中设置该参数。

然后将条件添加到您现有的屏幕宽度测试中,使其仅在未设置 cookie/query 参数时运行。

(您可能还想在主索引页面上添加一个额外的链接,让用户选择移动版本。显然,如果您使用 cookie 路由,这应该清除 cookie。)

【讨论】:

  • 我想我会选择第二个,我必须使用 php 还是使用 js >
  • 嗯,移动页面上的链接就像我的回答一样。在您的主索引页面上,您可以使用 PHP 测试该请求参数,也可以使用 JS 测试 window.location.search 以查看它是否包含该参数。对不起,我是用手机写的,所以很难写出正确的代码,但我在上一句中链接到的 MDN 页面上应该有足够的信息。
【解决方案2】:

这是一个小代码sn-p。当用户从移动变为普通时,运行以下代码:

var expires = new Date();
expires.setHours(expires.getHours + 24); 

document.cookie = (document.cookie ? document.cookie + ' ;' : '')
     + ' disableMobile=1; expires=' + expires.toGMTString();

然后将您的重定向条件更改为

   if (screen.width <= 960 && document.cookie.indexOf('disableMobile') < 0) [...]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2012-09-06
    • 2013-12-13
    相关资源
    最近更新 更多