zoukankan      html  css  js  c++  java
  • 判断浏览器版本

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <link href="%PUBLIC_URL%/hack.css" rel="stylesheet" />
    </head>
    <body>
        <div id="root">欢迎大家</div>
        <div id="hack" class="hack" style="display: none;">
            <div class="banner-top"></div>
            <div class="hack-content">
              <h2>
                为了您更好的使用项目运营管理系统,请使用Chrome、Safari、Firefox、IE11等现代浏览器。
              </h2>
              <p>
                如采用了IE内核的360、QQ等浏览器出现异常,请查看是否开启了低版本的兼容模式。
              </p>
            </div>
            <div class="banner-top banner-bottom"></div>
        </div>
        <script type="text/javascript">
            (function () {
              var ie = !!(window.attachEvent && !window.opera);
              var wk = /webkit/(d+)/i.test(navigator.userAgent) && RegExp.$1 < 525;
              var fn = [];
              var run = function () {
                for (var i = 0; i < fn.length; i++) fn[i]();
              };
              var d = document;
              d.ready = function (f) {
                if (!ie && !wk && d.addEventListener)
                  return d.addEventListener("DOMContentLoaded", f, false);
                if (fn.push(f) > 1) return;
                if (ie)
                  (function () {
                    try {
                      d.documentElement.doScroll("left");
                      run();
                    } catch (err) {
                      setTimeout(arguments.callee, 0);
                    }
                  })();
                else if (wk)
                  var t = setInterval(function () {
                    if (/^(loaded|complete)$/.test(d.readyState))
                      clearInterval(t), run();
                  }, 0);
              };
            })();
            function IETester(userAgent) {
              var UA = userAgent || navigator.userAgent;
              if (/msie/i.test(UA)) {
                return UA.match(/msie (d+.d+)/i)[1];
              } else if (~UA.toLowerCase().indexOf("trident") && ~UA.indexOf("rv")) {
                return UA.match(/rv:(d+.d+)/)[1];
              }
              return false;
            }
            function reactError() {
              setTimeout(function () {
                var app = document.getElementById("root");
                if (app.children && app.children.length === 0) {
                  document.getElementById("react-error").style.display = "block";
                }
              }, 60000);
            }
            function reload() {
              window.location.replace(window.location.origin);
            }
            window.IEVERSION = parseInt(IETester());
            document.ready(function () {
              if (parseInt(IETester()) <= 10) {
                document.getElementById("root").style.display = "none";
                document.getElementById("hack").style.display = "block";
              } else {
                reactError();
              }
            });
          </script>
    </body>
    </html>
  • 相关阅读:
    vim删除以#,空格开头的行
    Element-ui 中对表单进行验证
    VUE页面实现加载外部HTML方法
    vue-cli2嵌入html
    文字环绕图片
    LocalDate计算两个日期相差天数
    springboot+vue脚手架使用nginx前后端分离
    通过 Netty、ZooKeeper 手撸一个 RPC 服务
    Spring Native 项目,把 Spring 项目编译成原生程序!
    印象笔记吐槽
  • 原文地址:https://www.cnblogs.com/MDGE/p/13570857.html
Copyright © 2011-2022 走看看