1

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

<script type="text/javascript">

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

</script>

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

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

谢谢!

4

3 回答 3

2

使用 cookie。而且我更喜欢 jQuery cookie插件

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

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

因此,如果有人访问您的完整网站,如果屏幕小于 699 像素,它将被重定向到移动设备,并且如果他点击移动网站上的“完整版”链接 - 系统会设置 cookie 和 tointerface = 'web'以及您的 if 语句不是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文件夹中有文件。/js

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

于 2012-04-23T09:39:05.513 回答
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/";
}
于 2012-04-23T09:40:29.353 回答
0

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

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

在您的 if 语句中,检查m.

伪代码:

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

更新:您也可以使用 Session 或 Cookies。恕我直言,查询字符串更好。

于 2012-04-23T09:38:08.243 回答