我正在使用我见过的典型移动网站重定向脚本,而且效果很好。我的移动网站上也有一个链接,可以让他们根据需要查看常规网站,这也很有用。
这是我的场景&问题。他们去我的手机网站,然后点击链接转到常规网站。然后他们去访问一个完全不同的网站。如果他们再次输入我的网址去我的网站,它会将他们带到常规网站而不是移动网站。他们每次单独访问我的网站我希望他们被带到手机上。谁能更好的帮助我?谢谢!
这是我在常规网站上的脚本:
<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>
答案 0 :(得分:0)
让我们分析您的JavaScript代码。
if (document.location.search.indexOf("skipmobile") >= 0) {
如果URL包含字符串“skipmobile”,则条件>= 0
为true。请注意,将值设置为什么并不重要。它只是寻找字符串“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
。因此,如果主机名以“.mobi”结尾,或者如果屏幕尺寸的宽度小于“699”像素,则此条件的第一部分将为真。
此if语句的下一部分是document.cookie.indexOf("skipmobile") == -1
。这是检查不存在名为“skipmobile”的cookie。请注意-1
。所以它正在检查cookie是否已设置。
所以把它们放在一起,如果主机名以“.mobi” OR 结尾,则屏幕宽度小于“699”像素 AND cookie“skipmobile”具有尚未设置,然后使用此代码document.location = "m/"
将浏览器定向到移动网站“m /”。
看起来代码正在检查cookie以确定移动或完整网站。因此,当他们离开并返回您的网站时,它会“记住”该设置。
答案 1 :(得分:0)
设置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>