我将此添加到我的页面顶部:
<script type="text/javascript">
if (screen.width <= 800) {
window.location = "http://m.domain.com";
}
</script>
我的移动版本上有一个名为“主站点”的按钮。我希望按钮转到我的主站点,但不重定向回我的移动站点。我该怎么做呢?
另外,我只希望他们去那里一次。所以,下次他们输入我的网站名称时,我希望它把他们带到移动网站
我将此添加到我的页面顶部:
<script type="text/javascript">
if (screen.width <= 800) {
window.location = "http://m.domain.com";
}
</script>
我的移动版本上有一个名为“主站点”的按钮。我希望按钮转到我的主站点,但不重定向回我的移动站点。我该怎么做呢?
另外,我只希望他们去那里一次。所以,下次他们输入我的网站名称时,我希望它把他们带到移动网站
如果您已经有一个按钮可以转到您的主站点。只需将主站点链接到该按钮即可。您可以额外做的是,使用 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";
}
你可以检查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>
当有人点击您的“主站点”按钮时,在您重定向到您的主站点之前,创建一个“MobilOptOut”cookie,然后在您的 screen.width if 语句中测试该 cookie 的存在。
客户端需要管理用户想要查看的当前视图的状态。由于 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";
}