每次都重定向到手机网站

Redirect to mobile website every time

本文关键字:手机 手机网 网站 重定向      更新时间:2023-09-26

我使用的是我见过的典型的移动网站重定向脚本,效果非常好。我也有一个链接在我的手机网站,让他们查看正常的网站,如果需要的话,这也是有效的。

这是我的场景&问题。他们访问我的手机网站,然后点击链接进入常规网站。然后他们去访问一个完全不同的网站。如果他们再次输入我的网址进入我的网站,它会把他们带到常规网站,而不是移动网站。每次他们访问我的网站时,我都想把他们带到手机上。有更擅长这个的人能帮我吗??谢谢!

这是我在常规网站上的脚本:

<script type="text/javascript">
    if (document.location.search.indexOf("skipmobile") >= 0) {
        document.cookie = "skipmobile=1";
    } else if ((document.location.hostname.match(/'.mobi$/) || screen.width < 699) && document.cookie.indexOf("skipmobile") == -1) {
        document.location = "m/";
}

这是我手机网站的链接:

<a href="http://www.mywebsite.com/index.html?skipmobile=1">View Full Website</a>

让我们分析一下你的JavaScript代码。

if (document.location.search.indexOf("skipmobile") >= 0) {

如果URL包含字符串"skipmobile",则条件>= 0为真。注意,将值设置为什么并不重要。它只是寻找字符串"skipmobile"的存在。当该字符串在URL中时,cookie被设置为document.cookie = "skipmobile=1"。如果没有找到该字符串,indexOf将返回-1

else if ((document.location.hostname.match(/'.mobi$/) || screen.width < 699) && document.cookie.indexOf("skipmobile") == -1)

让我们把它分成几个部分。首先,||表示OR, &&表示and。因此,if document.location.hostname.match(/'.mobi$/)使用正则表达式从URL中搜索字符串"的主机名。"Mobi"结尾。所以www.yoursite.mobi匹配,但www.yoursite.com不匹配。然后我们有OR条件|| screen.width < 699。所以如果主机名以"。如果屏幕尺寸的宽度小于"699"像素,则此条件的第一部分将为真。

if语句的下一部分是document.cookie.indexOf("skipmobile") == -1。这是检查是否存在名为"skipmobile"的cookie。注意-1。所以它正在检查cookie是否没有设置。

所以把这些放在一起,如果主机名以"结尾。mobi" 屏幕宽度小于"699"像素 cookie "skipmobile"没有设置,然后将浏览器引导到移动站点,"m/",使用此代码document.location = "m/"

看起来代码正在检查cookie以确定移动或完整站点。因此,当他们离开并再次访问您的网站时,它会"记住"设置。

在设置cookie时-特别是不要设置有效期。这通常被称为"会话cookie"。当浏览器关闭时,cookie将自动过期。

或者更好的是…

很简单,就是不要设置cookie。我在代码中没有看到cookie实际存在的任何地方……只有没有cookie才重要。

此外,如果你不设置cookie…永远不会有饼干。为什么要浪费代码去寻找它呢?

试试这个…

<script type="text/javascript">
if (document.location.search.indexOf("skipmobile") >= 0)
{
document.location = "m/";
} else if ((document.location.hostname.match(/'.mobi$/) || screen.width < 699))
{
document.location = "m/";
}
</script>