多說使用ua-parser-js顯示瀏覽器和系統信息

前言

昨天博客接入了評論系統,使用的是國內的多說javascript

以前看到過有些利用該評論系統的有瀏覽器和系統信息的顯示,感受很不錯。css

因此,也想有這樣的效果。html

問題

多說如何顯示瀏覽器和系統的信息?前端

解決方法

通過查找,利用UAParser.js能夠實現。java

步驟

1. 添加樣式

span.this_ua {background-color: #ccc!important;border-radius: 4px;padding: 0 5px!important;margin: 0 1px!important;border: 1px solid #BBB!important;color: #fff;}
.this_ua.platform.Windows{background-color: #39b3d7!important;border-color: #46b8da!important;}
.this_ua.platform.Linux {background-color: #3A3A3A!important;border-color: #1F1F1F!important;}
.this_ua.platform.Android {background-color: #00C47D!important;border-color: #01B171!important;}
.this_ua.browser.Chrome{background-color: #5cb85c!important;border-color: #4cae4c!important;}
.this_ua.browser.Firefox{background-color: #f0ad4e!important;border-color: #eea236!important;}
.this_ua.browser.IE{background-color: #428bca!important;border-color: #357ebd!important;}
.this_ua.browser.Opera{background-color: #d9534f!important;border-color: #d43f3a!important;}

能夠新建一個css文件,在頁面中添加引用。jquery

如自定義顯示顏色css請加.this_ua.platform.相關名稱(注意大小寫)。git

2. 添加js代碼

這段代碼最好放在多說js代碼以後,能夠放在多說js的下面。github

下面兩段代碼根據須要選擇。瀏覽器

正常加載使用這段代碼:app

<script type="text/javascript">
  if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
  else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
  function hookDUOSHUO_tp(){
      var _D_post=DUOSHUO.templates.post
      DUOSHUO.templates.post=function (e,t){
          var rs=_D_post(e,t);
          if(e.agent&&/^Mozilla/.test(e.agent))rs=rs.replace(/<\/div><p>/,show_ua(e.agent)+'</div><p>');
          return rs;
      }
  }
  function show_ua(string){
      $.ua.set(string);
      var sua=$.ua;
      if(sua.os.version=='x86_64')sua.os.version='x64';
      return '<span class="this_ua browser '+sua.browser.name+'">'+sua.browser.name+' | '+sua.browser.version+'</span>'+'<span class="this_ua platform '+sua.os.name+'">'+sua.os.name+' '+sua.os.version+'</span>';
  }
  </script>

無刷新加載的請使用下面代碼:

<script type="text/javascript">
  if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
  else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
  var hookDUOSHUO_bl=false;
  function hookDUOSHUO_tp(){
      if(hookDUOSHUO_bl)return;
      else hookDUOSHUO_bl=true;
      var _D_post=DUOSHUO.templates.post;
      DUOSHUO.templates.post=function (e,t){
          var rs=_D_post(e,t);
          if(e.agent&&/^Mozilla/.test(e.agent))rs=rs.replace(/<\/div><p>/,show_ua(e.agent)+'</div><p>');
          return rs;
      }
  }
  function show_ua(string){
      $.ua.set(string);
      var sua=$.ua;
      if(sua.os.version=='x86_64')sua.os.version='x64';
      return '<span class="this_ua browser '+sua.browser.name+'">'+sua.browser.name+' | '+sua.browser.version+'</span>'+'<span class="this_ua platform '+sua.os.name+'">'+sua.os.name+' '+sua.os.version+'</span>';
  }
  </script>

3. 引入ua-parser.js庫

<script src="http://faisalman.github.io/ua-parser-js/src/ua-parser.js"></script>

能夠將庫文件下載到本地添加到主題中。

要先引入jquery庫文件。

引入的ua-parser.js庫文件必須在多說embed.js以後。

推薦加載多說js代碼中:

<script type="text/javascript">
  var duoshuoQuery = {short_name:"<%= theme.duoshuo_shortname %>"};
  (function() {
    var ds = document.createElement('script');
    ds.type = 'text/javascript';ds.async = true;
    ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
    ds.charset = 'UTF-8';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds);
    ds = document.createElement('script');
    ds.type = 'text/javascript';ds.async = true;
    ds.src = 'http://faisalman.github.io/ua-parser-js/src/ua-parser.js';
    ds.charset = 'UTF-8';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds);
  })();
</script >

效果圖

效果圖

原文來自:seay前端博客

相關文章
相關標籤/搜索