当前位置: 代码迷 >> JavaScript >> js 检测浏览器是不是安装Adobe Reader插件
  详细解决方案

js 检测浏览器是不是安装Adobe Reader插件

热度:407   发布时间:2012-06-26 10:04:13.0
js 检测浏览器是否安装Adobe Reader插件

????? 项目中使用到pdf在线预览功能,本来使用flexpaper在线预览的,效果虽然好但是要把pdf转换成swf格式才行,后来直接用Adobe Reader 显示了,但要是客户机没有安装Adobe Reader就会出现问题,pdf文件就直接变成了下载,所有要先判断下客户机有没有安装,没安装就提示安装

????? 使用javascript代码检测是否安装Adobe Reader ActiveX。另外,若未安装直接跳转到adobe reader下载的页面,提示用户下载并安装。

function Check_AdobeReader() {
            var displayString;
            var acrobat = new Object();
            acrobat.installed = false;
            acrobat.version = "0.0";

            if (navigator.plugins && navigator.plugins.length) {
                for (x = 0; x < navigator.plugins.length; x++) {
                    if (navigator.plugins[x].description.indexOf("Adobe Acrobat") != -1) {
                        acrobat.version = parseFloat(navigator.plugins[x].description.split("Version ")[1]);
                        if (acrobat.version.toString().length == 1) acrobat.version += ".0";
                        acrobat.installed = true;
                        displayString = "Acrobat Version: " + acrobat.version;
                        break;
                    } else if (navigator.plugins[x].description.indexOf("Adobe PDF Plug-In") != -1) {
                        acrobat.installed = true;
                        acrobat.version = "8+";
                        displayString = "Acrobat Version 8 or Above";
                    }
                }
            } else if (window.ActiveXObject) {
                for (x = 2; x < 10; x++) {
                    try {
                        oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');");
                        if (oAcro) {
                            acrobat.installed = true;

                            acrobat.version = x + ".0";
                            displayString = "Acrobat Version: " + acrobat.version;
                        }
                    }
                    catch (e) { }
                }

                try {
                    oAcro4 = new ActiveXObject("PDF.PdfCtrl.1");
                    if (oAcro4) {
                        acrobat.installed = true;
                        acrobat.version = '4.0';
                        displayString = 'Acrobat Version: ' + acrobat.version;
                    }
                }
                catch (e) { }

                try {
                    oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
                    if (oAcro7) {
                        acrobat.installed = true;
                        acrobat.version = '7.0';
                        displayString = 'Acrobat Version: ' + acrobat.version;
                    }
                }
                catch (e) { }
            }

            return acrobat;
        }

?

function isAcrobatPluginInstall() { 
 var flag = false; 
 // 如果是firefox浏览器 
 if (navigator.plugins && navigator.plugins.length) { 
 for (x = 0; x < navigator.plugins.length; x++) {

 if (navigator.plugins[x].name == 'Adobe Acrobat') 
 flag = true; 
 } 
 } 
 // 下面代码都是处理IE浏览器的情况 
 else if (window.ActiveXObject) { 
 for (x = 2; x < 10; x++) { 
 try { 
 oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');"); 
 if (oAcro) { 
 flag = true; 
 } 
 } catch (e) { 
 flag = false; 
 } 
 } 
 try { 
 oAcro4 = new ActiveXObject('PDF.PdfCtrl.1'); 
 if (oAcro4) 
 flag = true; 
 } catch (e) { 
 flag = false; 
 } 
 try { 
 oAcro7 = new ActiveXObject('AcroPDF.PDF.1'); 
 if (oAcro7) 
 flag = true; 
 } catch (e) { 
 flag = false; 
 } 
 } 
 if (flag) { 
 return true;

 } else { 
 alert("对不起,您还没有安装PDF阅读器软件呢,为了方便预览PDF文档,请选择安装!"); 
 location = 'http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.3/chs/AdbeRdr930_zh_CN.exe'; 
 } 
 return flag; 
 }

?

1 楼 usenrong 2012-05-16  
新版的下载地址
http://ardownload.adobe.com/pub/adobe/reader/win/10.x/10.1.0/zh_CN/AdbeRdr1010_zh_CN.exe
2 楼 leizhenyang 2012-06-14  
请问你遇到过在java web项目里 无法显示Flexpager的情况吗?我直接从官方的例子里面拷贝过来,把路径改了下,就是无法显示,而且页面上是已经有flash框了,但是没有页眉页脚,完全空白的.求解答啊!!!
3 楼 usenrong 2012-06-15  
leizhenyang 写道
请问你遇到过在java web项目里 无法显示Flexpager的情况吗?我直接从官方的例子里面拷贝过来,把路径改了下,就是无法显示,而且页面上是已经有flash框了,但是没有页眉页脚,完全空白的.求解答啊!!!

可能是flexpaper控件自身的flash的资源文件路径错了
  相关解决方案