2010-09-08 4 views

Répondre

0

J'ai trouvé cela, mais il ne fonctionne que dans Internet Explorer

function CheckAdobeVersion() { 


     var isInstalled = false; 
     var version = null; 
     if (window.ActiveXObject) { 
      var control = null; 
      try { 
       // AcroPDF.PDF is used by version 7 and later 
       control = new ActiveXObject('AcroPDF.PDF'); 
      } catch (e) { 
       // Do nothing 
      } 
      if (!control) { 
       try { 
        // PDF.PdfCtrl is used by version 6 and earlier 
        control = new ActiveXObject('PDF.PdfCtrl'); 
       } catch (e) { 
        return; 
       } 
      } 
      if (control) { 
       isInstalled = true; 
       version = control.GetVersions().split(','); 
       version = version[0].split('='); 
       version = parseFloat(version[1]); 
       return version; 
      } 
     } else { 
      // Check navigator.plugins for "Adobe Acrobat" or "Adobe PDF Plug-in"* 
     } 
    }  

Toute idée comment je pourrais le faire fonctionner dans Firefox ou Chrome?

Sp

+0

Cela devrait être ajouté à la question initiale d'une édition. La raison évidente pour cela ne fonctionne pas sur tout ce qui n'est pas IE, car il utilise ActiveX, qui est la technologie IE propriétaire, donc "faire ce travail sur un autre navigateur" n'est pas une option - vous avez besoin d'une approche totalement différente. –

1

J'ai modifié le code donné ci-dessus pour travailler avec les navigateurs non IE.

function CheckAdobeVersion() { 
    var isInstalled = false; 
    var version = null; 
    if (window.ActiveXObject) { 
     var control = null; 
     try { 
      // AcroPDF.PDF is used by version 7 and later 
      control = new ActiveXObject('AcroPDF.PDF'); 
     } catch (e) { 
      // Do nothing 
     } 
     if (!control) { 
      try { 
       // PDF.PdfCtrl is used by version 6 and earlier 
       control = new ActiveXObject('PDF.PdfCtrl'); 
      } catch (e) { 
       return; 
      } 
     } 
     if (control) { 
      isInstalled = true; 
      version = control.GetVersions().split(','); 
      version = version[0].split('='); 
      version = parseFloat(version[1]); 
      return version; 
     } 
    } else { 
     // Changes added in here 
     var plugins = navigator.plugins; 

     for(var i = 0; i < plugins.length; i++){ 
      if (plugins[i].name === "Adobe Acrobat"){ 
       version = plugins[i].version; 

       if(!version) { 
        version = plugins[i].description.split('"')[1]; 
       } 

       return parseFloat(version); 
      } 
     }  
    } 
} 

Il utilise la propriété navigator.plugins pour rechercher Adobe Reader. Cela fonctionne pour moi avec Firefox, Chrome, Safari et Opera, mais je l'ai seulement testé avec la version 9 de Reader.

Voir la version live: http://jsfiddle.net/EGbY5/3/

Questions connexes