JS檢測瀏覽器Adobe Reader插件


  Web應用中當我們希望向用戶顯示pdf文檔時候,如果用戶安裝了Adobe Reader之類的pdf閱讀器,就可以直接打開文檔在瀏覽器中顯示,

但是,當用戶沒有安裝這類軟件的時候,自然是打不開的,為了系統或者網站的易用性,最好在展示文檔之前對客戶端進行檢測,如果已經安裝

這類閱讀器就直接顯示,如果沒有安裝則跳轉到Adobe Reader之類的閱讀軟件的下載頁面或者直接給用戶下載地址,提示用戶進行下載安裝。

我們可以通過JavaScript先進行檢測,然后根據檢測結果進行指定的跳轉。如果是像火狐、谷歌這類瀏覽器很好處理,可是IE瀏覽器則總會遇到

各種問題,通過搜多資料和測試終於解決了各種版本以及不同瀏覽器的問題,下面就是相應的JavaScript代碼。

 1 <script type="text/javascript">
 2 
 3   //檢測瀏覽器類型:IE、火狐、谷歌、Safari
 4 
 5   function getBrowserName(){
 6   var userAgent = navigator ? navigator.userAgent.toLowerCase() : "other";
 7   if(userAgent.indexOf("chrome") > -1) return "chrome";
 8   else if(userAgent.indexOf("safari") > -1) return "safari";
 9   else if(userAgent.indexOf("msie") > -1 || userAgent.indexOf("trident") > -1) return "ie";
10   else if(userAgent.indexOf("firefox") > -1) return "firefox";
11   return userAgent;
12   }
13 
14   //針對IE返回ActiveXObject
15   function getActiveXObject (name){
16   try {
17   return new ActiveXObject(name);
18   } catch(e) {
19   }
20   }
21 
22   //針對除了IE之外瀏覽器
23   function getNavigatorPlugin (name){
24   for(key in navigator.plugins) {
25   var plugin = navigator.plugins[key];
26   if(plugin.name == name) return plugin;
27   }
28   }
29 
30   //獲取Adobe Reader插件信息
31   function getPDFPlugin(){
32   if(getBrowserName() == 'ie') {
33   //
34   // load the activeX control
35   // AcroPDF.PDF is used by version 7 and later
36   // PDF.PdfCtrl is used by version 6 and earlier
37   return getActiveXObject('AcroPDF.PDF') || getActiveXObject('PDF.PdfCtrl');
38   }
39   else {
40   return getNavigatorPlugin('Adobe Acrobat') || getNavigatorPlugin('Chrome PDF Viewer') || getNavigatorPlugin('WebKit built-in PDF');
41   }
42   }
43 
44       //判斷插件是否安裝
45   function isAcrobatInstalled(){
46   return !!getPDFPlugin();
47   }
48   function getAcrobatVersion(){
49   try {
50   var plugin = getPDFPlugin();
51   if(getBrowserName() == 'ie') {
52   var versions = plugin.GetVersions().split(',');
53   var latest = versions[0].split('=');
54   return parseFloat(latest[1]);
55   }
56   if(plugin.version) return parseInt(plugin.version);
57   return plugin.name;
58   }
59   catch(e) {
60   return null;
61   }
62   }
63 
64   //插件安裝了,則跳轉到指定頁面
65   if(isAcrobatInstalled){
66     window.location.href="";
67   }else{
68 
69      //檢測到未安裝閱讀器,則提示用戶下載
70   alert("你可能還沒有安裝pdf閱讀器,為了方便你查看pdf文檔,請下載安裝!");
71     window.location.href="http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.3/chs/AdbeRdr930_zh_CN.exe";
72   }
73 </script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM