【问题标题】:Redirect Old Browers Safari Users重定向旧浏览器 Safari 用户
【发布时间】:2016-02-06 17:12:57
【问题描述】:

我正在使用此代码来重定向 safari 用户...

<script>
    var uagent = navigator.userAgent.toLowerCase();
    if(/safari/.test(uagent) && !/chrome/.test(uagent))
    {
        window.location.href = "http://www.google.com"
    }
</script>

但是我需要一个脚本来仅重定向旧的 safari 浏览器,有人可以帮助我吗?

【问题讨论】:

    标签: javascript html redirect browser safari


    【解决方案1】:
    <script type="text/javascript">
        window.onload = function () {
            var uagent = navigator.userAgent.toLowerCase();
            var safari = uagent.match(/safari\/(\S+)/);
            var chrome = uagent.match(/chrome\/(\S+)/);
            var MIN_SAFARI_VERSION = 900;
            if(safari && !chrome) {
                if (parseFloat(safari[1]) < MIN_SAFARI_VERSION) {
                    window.location.href = "http://www.google.com"
                }
            }
        }
    </script>
    

    safari 的值将是["safari/(version number)", "(version number)"],因此safari[1] 将以字符串形式提供版本号。然后,您可以尝试将该值解析为浮点数(或整数)以获取版本号,然后根据结果重定向。

    【讨论】:

    • 具体是什么不起作用?根据您要重定向的版本,将MIN_SAFARI_VERSION 的值更改为更高的值。例如,更改为MIN_SAFARI_VERSION = 900 以测试它是否有效。
    • 我试过了,但没有成功。我将 min_safari_version 更改为 900,我可以使用 5.1 safari 版本进入
    • 添加了window.onload 函数。
    【解决方案2】:

    我已经设法创建了一个解决方案来解决@evan_schmevan 的答案中的问题,因为它对我不起作用。

    我的解决方案在 uagent 上以不同的格式运行。

    希望对您有所帮助。试试sn-p

    window.onload = function () {
            var uagent = navigator.userAgent.toLowerCase();
            var MIN_SAFARI_VERSION = 11;
            console.log ("Your uagent: ||"+ uagent+"||");
    
            //First, check if safari appears on the user agent
            var safari = uagent.match(/safari\/(\S+)/);
            
            //Chrome shows SAFARI on its user agent, when used from              //mac, then whe check this to ensure is not chrome
            var chrome = uagent.match(/chrome\/(\S+)/);
    
            //If safari is detected on uagent
            if(safari.length > 0 && !chrome  ) {
                console.log("Safari detected");
                var version = uagent.match(/version\/([0-9]+)/);
                console.log("Version detected: "+version[1]);
                if(version[1] < MIN_SAFARI_VERSION) {
                console.log ("OOPS!!! Version is lower than min required");
                //window.location.href = "http://www.google.com"
                }
             }
                else if (chrome.length>0)
                {
                  console.log("Chrome detected");
                }
            
        }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <html>
    <body>
    <h1> Detect your browser version</h1>
    </body>
    </html>

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 2023-01-25
      • 2015-10-09
      • 2018-03-21
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2014-09-10
      相关资源
      最近更新 更多