2

我将此添加到我的页面顶部:

<script type="text/javascript">

if (screen.width <= 800) {
    window.location = "http://m.domain.com";
}

</script>

我的移动版本上有一个名为“主站点”的按钮。我希望按钮转到我的主站点,但不重定向回我的移动站点。我该怎么做呢?

另外,我只希望他们去那里一次。所以,下次他们输入我的网站名称时,我希望它把他们带到移动网站

4

4 回答 4

2

如果您已经有一个按钮可以转到您的主站点。只需将主站点链接到该按钮即可。您可以额外做的是,使用 url 参数来检查并强制主布局。就像是

<a href="http://www.domain.com?forcelayout=main">Main site</a>

当您想要强制主布局时,检查此参数。否则,当前使用的脚本将自动执行您想要执行的操作。


使用以下函数读取查询字符串。[来源]

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

接下来,您可以在逻辑中使用它,如下所示:

if (screen.width <= 800 && getParameterByName('forceLayout') != 'main') {
    window.location = "http://m.domain.com";
}
于 2012-07-05T02:31:41.230 回答
1

你可以检查document.referrer

<script type="text/javascript">
if (screen.width <= 800 && document.referrer.indexOf('http://m.domain.com') != 0) {
    window.location = "http://m.domain.com";
}
</script>
于 2012-07-05T02:26:40.280 回答
1

当有人点击您的“主站点”按钮时,在您重定向到您的主站点之前,创建一个“MobilOptOut”cookie,然后在您的 screen.width if 语句中测试该 cookie 的存在。

于 2012-07-05T02:29:33.720 回答
0

客户端需要管理用户想要查看的当前视图的状态。由于 HTTP 是一种无状态协议,因此您可以使用 cookie 在 HTTP 请求中保留用户的选择。

当用户单击按钮以显示主要版本时,将 cookie 作为单击事件的一部分删除。同样,当用户想要查看移动版本时,将 cookie 设置为您想要的值。由于有许多使用 JavaScript 操作 cookie 的方法可能依赖于库,因此下面是您的页面应该执行的伪代码。

// Pseudocode:
// Sets a cookie named "view" with the value "mobile"
function setMobileView() {
    Cookie.set("view", "mobile");
}
mobileViewButton.onclick = setMobileView;

// Deletes the cookie named "view"
function setMainView() {
    Cookie.delete("view");
}
mainViewButton.onclick = setMainView;

这是您的重定向逻辑的伪代码:

// Pseudocode for deciding the view to display
if (view === "mobile") {
  location.href = "http://m.domain.com";
}
于 2012-07-05T02:53:57.120 回答