如果从此站点重定向 - 保留在页面上,则重定向到移动页面

时间:2012-04-23 09:31:05

标签: jquery redirect

我的网页上有一个重定向脚本,说明如果您的浏览器宽度小于699,则会被重定向到移动页面。

<script type="text/javascript">

if (screen.width <= 699) {
document.location = "http://www.idekraft.se/m/";
}

</script>

现在出现问题 - 在我的移动页面上,我有一个按钮,说“带我到正常的网页”。 由于我的愚蠢屏幕宽度重定向脚本,如果您愿意,您无法访问手机上的“普通”网页。

我的问题是 - 如何解决脚本所以如果你是来自这个地址,也许它会说 www.idekraft.se/m这个剧本不会影响你。

谢谢!

3 个答案:

答案 0 :(得分:2)

使用cookies。我更喜欢jQuery cookie plugin

在您有链接的移动页面上,在链接上的click事件上放置一个监听器,然后在重定向之前 - 设置一个像$.cookie('interface', 'web');这样的cookie,然后在设置接口上添加检查完整的网页

if (tyepof $.cookie('interface') != 'undefined' || screen.width < 699) {
    // redirect
}

因此,如果有人来到您的完整网站,如果屏幕小于699px,它将被重定向到移动设备,如果他点击移动网站上的“完整版”链接 - 系统会设置cookie并{{ 1}}和你的if语句不会interface = 'web'重定向用户。

以下是完整的工作示例:

true

deskop.php

<html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery.cookie.js"></script> <script type="text/javascript"> var ui = $.cookie('ui'); $(document).ready(function() { if (ui != 'desktop' && screen.width < 699) { $.cookie('ui', 'mobile', { expires: 365 }); window.location = '/mobile.php'; } }); $(document).on('click', 'a#redirect', function(e) { e.preventDefault(); e.stopPropagation(); $.cookie('ui', 'mobile', { expires: 365 }); window.location = $(this).attr('href'); }); </script> </head> <body> <a href="/mobile.php" id="redirect">Go to the mobile version</a> </body> </html>

mobile.php

此外,您需要在资源的文档根目录的<html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery.cookie.js"></script> <script type="text/javascript"> var ui = $.cookie('ui'); $(document).ready(function() { if (ui != 'desktop' && screen.width > 699) { $.cookie('ui', 'desktop', { expires: 365 }); window.location = '/desktop.php'; } }); $(document).on('click', 'a#redirect', function(e) { e.preventDefault(); e.stopPropagation(); $.cookie('ui', 'desktop', { expires: 365 }); window.location = $(this).attr('href'); }); </script> </head> <body> <a href="/desktop.php" id="redirect">Go to the desktop version</a> </body> </html> 文件夹中包含jquery.cookie.js文件。

希望,这就是你所需要的,因为我不知道如何更清楚地描述它......

答案 1 :(得分:0)

当小屏幕设备上的某人想要查看主网站时添加查询字符串,例如

http://www.idekraft.se/m=0

在if语句中,检查m的值。

伪代码:

if screen width is less than 699 AND m is not equal to zero
   redirect

更新:您还可以使用会话或Cookie。恕我直言,查询字符串更好。

答案 2 :(得分:0)

最简单的方法是使用cookie。当用户点击“转到普通网页”时,设置一个cookie:

<button type="button" onclick="document.cookie='mobile=no';history.back()">
  Take me to the normal webpage
</button>

在普通页面上,检查是否存在cookie:

if (screen.width <= 699 && !/mobile=no/.test(document.cookie)) {
    document.location = "http://www.idekraft.se/m/";
}