美文网首页Hexo程序员Hexo
多说插件利用ua-parser-js插件显示浏览器和操作系统版本

多说插件利用ua-parser-js插件显示浏览器和操作系统版本

作者: seay | 来源:发表于2016-05-18 18:56 被阅读650次
    图文无关/图片来自网络

    前言

    博客接入了评论系统,使用的是国内的多说评论插件

    之前看到过有些利用该评论系统的有浏览器和系统信息的显示,感觉很不错。

    所以,也想有这样的效果。

    实现方式

    经过一番搜索,可以使用UAParser.js插件来实现。

    实现步骤

    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文件,在页面中添加引用。

    如自定义显示颜色css请加.this_ua.platform.相关名称(注意大小写)。

    2. 添加js代码

    这段代码最好放在多说js代码之后,可以放在多说js的下面。

    下面两段代码根据需要选择。

    正常加载使用这段代码:

    <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 >
    

    效果图

    多说显示浏览器和系统信息效果图

    好了,本文就介绍到这里。
    如有疑问,或者是有更好的方法,欢迎随时联系我。

    本文采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
    基于简书上的作品创作。 可转载、引用,但需经本人同意后署名作者且注明文章出处,并以相同方式共享。

    知识共享许可协议知识共享许可协议

    相关文章

      网友评论

      • seay:你看下post文件夹下有没有新建的文章,另外没有错误信息吗
      • 文若_:你好,请问利用hexo new 文件名 新建文章以后,完成以后,hexo g和hexo d 以后,博客上没有出现该文章是怎么回事?

      本文标题:多说插件利用ua-parser-js插件显示浏览器和操作系统版本

      本文链接:https://www.haomeiwen.com/subject/cpmwrttx.html