【问题标题】:How to check if a browser supports focus-visible using JavaScript?如何使用 JavaScript 检查浏览器是否支持焦点可见?
【发布时间】:2021-02-27 16:07:25
【问题描述】:

这个问题相当简单。我想检查浏览器是否支持焦点可见 (:focus-visible) 或不使用 JavaScript。我该怎么做?

【问题讨论】:

    标签: javascript browser


    【解决方案1】:

    console.log(selectorSupported(":focus-visible"))
    
    function selectorSupported(selector){
      
      var support, link, sheet, doc = document,
          root = doc.documentElement,
          head = root.getElementsByTagName('head')[0],
    
          impl = doc.implementation || {
                  hasFeature: function() {
                      return false;
                  }
          },
    
      link = doc.createElement("style");
      link.type = 'text/css';
    
      (head || root).insertBefore(link, (head || root).firstChild);
    
      sheet = link.sheet || link.styleSheet;
    
      if (!(sheet && selector)) return false;
    
      support = impl.hasFeature('CSS2', '') ?
      
                  function(selector) {
                      try {
                          sheet.insertRule(selector + '{ }', 0);
                          sheet.deleteRule(sheet.cssRules.length - 1);
                      } catch (e) {
                          return false;
                      }
                      return true;
                      
                  } : function(selector) {
                    
                      sheet.cssText = selector + ' { }';
                      return sheet.cssText.length !== 0 && !(/unknown/i).test(sheet.cssText) && sheet.cssText.indexOf(selector) === 0;
                  };
       
      return support(selector);
    
    };

    感谢 Modernizr 的 https://gist.github.com/paulirish/441842

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2018-06-01
      • 1970-01-01
      • 2014-04-12
      • 2018-02-24
      • 2015-06-26
      相关资源
      最近更新 更多