【问题标题】:Redirecting a mobile user to a desktop version将移动用户重定向到桌面版本
【发布时间】:2013-02-18 23:09:42
【问题描述】:

我有一个 Wordpress 网站,该网站使用设备检测将用户在其移动设备上的浏览重定向到特定页面,使用以下方法:

<script>
if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile/i.test(navigator.userAgent) ) {
window.location = "176.32.230.17/domain.co.uk/m";
}
</script>

此代码目前位于 domain.co.uk 的主页模板中。就在打开正文标签之后。检测和重定向效果很好,但是,我需要在该移动页面上提供指向该网站桌面版本的链接。所以只是一个简单的链接:

<a href="http://176.32.230.17/domain.co.uk/?ref=desktop">Link back to desktop website</a>

它的工作原理是将用户引导回 domain.co.uk 地址,但是,由于检测/重定向代码的位置位于 domain.co.uk 的主页模板上,因此用户会被重定向回手机版。我该如何解决这个问题?

【问题讨论】:

    标签: javascript wordpress redirect mobile detect


    【解决方案1】:

    您需要以某种方式传达用户已经被重定向一次的事实。如果您使用的是 PHP,则可以使用 GET 变量进行条件重定向。如果您只是使用 Javascript,则可以使用 cookie。 HTML5 也支持某种数据存储,但我不熟悉。

    编辑:实际上,您可以在地址上添加一个 GET 变量,甚至不使用 PHP。只需使用window.location.href 获取地址,然后查看变量是否仅使用 Javascript 设置。

    EDIT2:在 cmets 中放了太多东西,所以让我把它放在这里。链接应改为:

    <a href="http://176.32.230.17/domain.co.uk/?ref=desktop#redirected">Link back to desktop website</a>
    

    并且重定向代码可以改成:

    <script>
    if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile/i.test(navigator.userAgent) &&
            !window.location.href.contains("#redirected") ) {
        window.location = "176.32.230.17/domain.co.uk/m";
    }
    </script>
    

    【讨论】:

    • 我将如何使用 JS 方法或 PHP 方法?我也不太清楚该怎么做......哪个最好实施?
    • 好吧,先告诉我们,你用的不是PHP?
    • 嗯,我正在使用 Wordpress,所以我可以使用 PHP。我愿意接受最诚实的方法
    • 我会这样做:将用户重定向到网站/?ref=desktop&already_redirected=true。然后,在 Javascript 中,获取 window.location.href 变量并搜索它。如果里面已经有_redirected=true,就不要再重定向了。
    • 你说'获取 window.location.href 变量并搜索它'我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2019-08-20
    • 2012-12-23
    • 1970-01-01
    • 2012-01-19
    • 2014-01-31
    相关资源
    最近更新 更多