2008-10-09 10 views
3

Я знаю, что это можно сделать в IE, создав объект ActiveX, но как это сделать в FF. Объект navigator.plugins ['Adobe Acrobat'] позволяет узнать, установлен ли он или нет, но он не содержит номер версии. Есть идеи?Как определить версию Adobe Acrobat, установленную в Firefox с помощью JavaScript

ответ

10

navigator.plugins[n].name, где n - это индекс плагина Acrobat, который должен иметь номер версии в нем. К сожалению, начиная с Adobe Reader 8, они сменили имя на "Adobe PDF Plug-In for Firefox and Netscape" без информации о версии. Итак, если это имя, которое вы обнаружили, по крайней мере, Reader 8, но не можете сказать версии 8 из 9.

Кроме того, убедитесь, что вы учли, что Mac не требуется Acrobat Reader для рендеринга PDF-файлов , (Я загрузился мой раздел Windows, просто чтобы проверить это.)

+0

Отличный ответ. Является ли это доступным для IE или другим методом? – 2008-10-09 16:23:14

+0

Хороший совет о Mac, но это решение имеет ту же проблему, что и SWFObject, описание для Adobe Acrobat не включает номер версии. – Snocrash 2008-10-09 18:39:51

+0

Что касается комментария IE, этот метод описания может использоваться для других плагинов в IE, но более надежным способом является создание объекта ActiveXObject, как описано здесь: http://www.builtfromsource.com/tag/safari/ – Snocrash 2008-10-09 18:45:31

2

Должна быть возможность сделать это как SWFObject определяет версию флэш-памяти:

SWFObject source code

0
var p = document.getElementById('Pdf1'); 
//p.GetVersions() 
if(p.GetVersions().indexOf("7.0") != -1) 
    alert("Acrobat 7 Found") 
0
var browser_info = { 
    name: null, 
    acrobat : null, 
    acrobat_ver : null 
    }; 


if(navigator.plugins != null) 
    {  
    var acrobat = navigator.plugins['Adobe Acrobat']; 
    if(acrobat == null) 
    {   
    browser_info.acrobat = null; 
    return browser_info; 
    } 
    browser_info.acrobat = "installed"; 
    browser_info.acrobat_ver = parseInt(acrobat.version[0]);     
    } 


where navigator is the property of Window