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

来源:http://www.cnblogs.com/seayxu/archive/2016/01/28/5167344.html
-Advertisement-
Play Games

前言 昨天博客接入了評論系統,使用的是國內的多說。 之前看到過有些利用該評論系統的有瀏覽器和系統信息的顯示,感覺很不錯。 所以,也想有這樣的效果。 問題 多說如何顯示瀏覽器和系統的信息? 解決方法 經過查找,利用UAParser.js可以實現。 步驟 1. 添加樣式 1 span.this_ua {


前言

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

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

所以,也想有這樣的效果。

問題

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

解決方法

經過查找,利用UAParser.js可以實現。

步驟

1. 添加樣式

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;}
2 .this_ua.platform.Windows{background-color: #39b3d7!important;border-color: #46b8da!important;}
3 .this_ua.platform.Linux {background-color: #3A3A3A!important;border-color: #1F1F1F!important;}
4 .this_ua.platform.Android {background-color: #00C47D!important;border-color: #01B171!important;}
5 .this_ua.browser.Chrome{background-color: #5cb85c!important;border-color: #4cae4c!important;}
6 .this_ua.browser.Firefox{background-color: #f0ad4e!important;border-color: #eea236!important;}
7 .this_ua.browser.IE{background-color: #428bca!important;border-color: #357ebd!important;}
8 .this_ua.browser.Opera{background-color: #d9534f!important;border-color: #d43f3a!important;}

可以新建一個css文件,在頁面中添加引用。

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

2. 添加js代碼

這段代碼最好放在多說js代碼之後,可以放在多說js的下麵。

下麵兩段代碼根據需要選擇。

正常載入使用這段代碼:

 1 <script type="text/javascript">
 2   if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
 3   else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
 4   function hookDUOSHUO_tp(){
 5       var _D_post=DUOSHUO.templates.post
 6       DUOSHUO.templates.post=function (e,t){
 7           var rs=_D_post(e,t);
 8           if(e.agent&&/^Mozilla/.test(e.agent))rs=rs.replace(/<\/div><p>/,show_ua(e.agent)+'</div><p>');
 9           return rs;
10       }
11   }
12   function show_ua(string){
13       $.ua.set(string);
14       var sua=$.ua;
15       if(sua.os.version=='x86_64')sua.os.version='x64';
16       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>';
17   }
18   </script>

 

無刷新載入的請使用下麵代碼:

 1 <script type="text/javascript">
 2   if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
 3   else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
 4   var hookDUOSHUO_bl=false;
 5   function hookDUOSHUO_tp(){
 6       if(hookDUOSHUO_bl)return;
 7       else hookDUOSHUO_bl=true;
 8       var _D_post=DUOSHUO.templates.post;
 9       DUOSHUO.templates.post=function (e,t){
10           var rs=_D_post(e,t);
11           if(e.agent&&/^Mozilla/.test(e.agent))rs=rs.replace(/<\/div><p>/,show_ua(e.agent)+'</div><p>');
12           return rs;
13       }
14   }
15   function show_ua(string){
16       $.ua.set(string);
17       var sua=$.ua;
18       if(sua.os.version=='x86_64')sua.os.version='x64';
19       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>';
20   }
21   </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代碼中:

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

效果圖

原文來自:seay前端博客


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在研究css~當設置一個元素width後~有時候也會對他設定padding,margin,border值, 每次這樣我就心裡琢磨,那這個元素的width會變嗎,js獲取元素的寬度width()指的是哪個寬度,還有innerWidth()?outerWidth()?outerWidth(true)
  • SVG 基本內容 SVG並不屬於HTML5專有內容 HTML5提供有關SVG原生的內容 在HTML5出現之前,就有SVG內容 SVG,簡單來說就是矢量圖 SVG文件的擴展名為".svg" SVG使用的是XML語法 概念 SVG是一種使用XML技術描述二維圖形的語言 SVG的特點 SVG繪製圖形可以被
  • 在瞭解浮動屬性之前,首先我們先瞭解一下html中關於display屬性的相關知識。 display屬性常用的有inline, block, inline-block. inline也就是內聯的意思。 常見的html標簽中如 span, font, a, b, em 都是內聯元素。 所謂內聯,簡單理解
  • 如果可以回到過去的話,我會告訴自己這句話:"初學JavaScript的時候無視DOM和BOM的相容性" 我初學時的處境 在我初學JavaScript的時候最頭痛的就是瀏覽器相容問題。在Firefox下麵好好的代碼放到IE就不能顯示了,又或者是在IE能正常顯示的代碼在firefox又報錯了。 前端開發
  • 效果體驗:http://hovertree.com/texiao/jquery/26/本效果適用於移動設備,可以使用手機等瀏覽效果。代碼下載:http://hovertree.com/h/bjaf/e14uccpw.htmHTML代碼如下: 1 <!doctype html> 2 <html lan
  • 對CSS盒子模型的理解,以及闡述了margin、border、padding、content的作用和在標準模式與怪異模式的區別。
  • 1、AJAX 簡介 AJAX(音譯為:阿賈克斯) = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML),是指一種創建互動式網頁應用的網頁開發技術,也就是在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。AJAX 不是新的編程語言,而是一
  • 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <ti
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...