Check if adobe reader is installed on client machine

前端 未结 2 1669
生来不讨喜
生来不讨喜 2021-02-10 20:59

Currently I am working on a web page which will tell user about certain configurations on client machine. Out of this there is also requirement of detecting if Adobe Reader is i

相关标签:
2条回答
  • 2021-02-10 21:36

    pls, check the script below, it worked fine for me in IE, FireFox and Chrome

    <html>
    <body>
    <script type="text/javascript">
    var found = false;
    var info = '';
    
    try 
    {    
        acrobat4 = new ActiveXObject('PDF.PdfCtrl.1');    
        if (acrobat4) 
        {      
            found = true;      
            info = 'v. 4.0';    
        }  
    }  
    catch (e) 
    {
        //???
    }
    
    if (!found)
    {
        try 
        {
            acrobat7 = new ActiveXObject('AcroPDF.PDF.1');
            if (acrobat7) 
            {
                found = true;
                info = 'v. 7+';
            }
        } 
        catch (e) 
        {
            //???
        }
    
        if (!found && navigator.plugins && navigator.plugins.length>0)
        {
            for (var i = 0; i<navigator.plugins.length; i++) 
            {                           
                if (navigator.plugins[i].name.indexOf('Adobe Acrobat') > -1)
                {
                    found = true; 
                    info = navigator.plugins[i].description + ' (' + navigator.plugins[i].filename + ')';
                    break;
                }
            }
        }
    }
    
    document.write("Acrobat Reader Installed : " + found);
    document.write("<br />");
    if (found) document.write("Info : " + info);
    </script>
    </body>
    </html>
    

    hope this helps, regards

    0 讨论(0)
  • 2021-02-10 21:51

    I used this script and called it on ready function : Note: i used the alerts here just to know how to use it.

     <script type="text/javascript">
         $(document).ready(function () {
             alert(getAcrobatInfo().browser);
             alert(getAcrobatInfo().acrobat === "installed");
             alert(getAcrobatInfo().acrobatVersion);
         });
    
    
         var getAcrobatInfo = function () {
    
             var getBrowserName = function () {
                 return '<%=Session["browser"].ToString()%>';
             };
    
             var getActiveXObject = function (name) {
                 try { return new ActiveXObject(name); } catch (e) { }
             };
    
             var getNavigatorPlugin = function (name) {
                 for (key in navigator.plugins) {
                     var plugin = navigator.plugins[key];
                     if (plugin.name == name) return plugin;
                 }
             };
    
             var getPDFPlugin = function () {
                 return this.plugin = this.plugin || function () {
                     if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                         //
                         // load the activeX control
                         // AcroPDF.PDF is used by version 7 and later
                         // PDF.PdfCtrl is used by version 6 and earlier
                         return getActiveXObject('AcroPDF.PDF') || getActiveXObject('PDF.PdfCtrl');
                     }
                     else {
                         return  getNavigatorPlugin('Adobe Acrobat') || getNavigatorPlugin('Chrome PDF Viewer') || getNavigatorPlugin('WebKit built-in PDF') || getWebKitPlugin();
                     }
                 }();
             };
             var getWebKitPlugin = function () {
                 for (var key in navigator.plugins) {
                     var plugin = navigator.plugins[key];
                     if (plugin.name && plugin.name.substring(0, 6) == "WebKit" && (plugin.name.indexOf("pdf") != -1 || plugin.name.indexOf("PDF") != -1)) return plugin;
                 }
             };
             var isAcrobatInstalled = function () {
                 return !!getPDFPlugin();
             };
             var getAcrobatVersion = function () {
                 try {
                     var plugin = getPDFPlugin();
    
                     if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                         var versions = plugin.GetVersions().split(',');
                         var latest = versions[0].split('=');
                         return parseFloat(latest[1]);
    
                     }
                     if (plugin.version) return parseInt(plugin.version);
                     return plugin.name
    
    
                 }
                 catch (e) {
                     return null;
                 }
             }
    
             // The returned object
             return {
                 browser: getBrowserName(),
                 acrobat: isAcrobatInstalled() ? 'installed' : false,
                 acrobatVersion: getAcrobatVersion()
             };
         };
    </script>
    

    Also add this code behind:

      public void detectBrowser()
         { //Set the Browser session variable
           System.Web.HttpBrowserCapabilities browser = Request.Browser;
           Session["Browser"] = browser.Browser;
        }
    

    Hope it helps.

    0 讨论(0)
提交回复
热议问题