Определить версию плагина в браузере Chrome - PullRequest
1 голос
/ 03 февраля 2011

У меня есть плагин NPAPI, и я хочу определить его версию, прежде чем встраивать его в веб-страницу. Если версия не самая последняя, ​​я хочу показать какое-то сообщение с просьбой обновить плагин.

Теперь это реализовано следующим образом

if (navigator.mimeTypes && navigator.mimeTypes["application/myplugin"]) {
{
    // some code here

    if(navigator.plugins["myplugin"] && navigator.plugins["myplugin"].version >= latest_version) {
        // we have the latest version (embed the plugin into web page)
        document.write ("<object id='plugin'><embed ....></object>");
    } else {
        document.write ("Show message here");
    }

    // some code
}

Проблема в том, что navigator.plugins["myplugin"].version отлично работает в Firefox, но не в Chrome. Chrome не предоставляет свойства version. Я могу добавить свое собственное свойство в коде NPAPI, но я не вижу, как я могу использовать его до встраивания плагина в страницу.

Есть ли обходной путь?

Заранее спасибо, Андрей

Ответы [ 3 ]

1 голос
/ 04 февраля 2011

Я на самом деле поместил номер версии в имя файла, а не даже имя или описание.Причина этого заключается в том, что если есть несколько плагинов с одинаковыми именами, описаниями и типами Mimetypes, Firefox обычно будет использовать последнюю версию.В старых версиях Firefox было непоследовательное поведение, поэтому я даже обычно помещал файл np ??? _ version.dll в подкаталог, зависящий от версии.он работает одинаково в каждом браузере NPAPI.

1 голос
/ 03 февраля 2011

Я вижу, что многие плагины имеют информацию о версии либо в названии, либо в описании.Вы должны иметь доступ к этой информации до встраивания.

0 голосов
/ 03 июня 2013

Вы можете создать свойство JSAPI вашего плагина, содержащее версию. Это свойство возвращает версию плагина при вызове из javascript. Поэтому, когда вы пытаетесь вставить / вставить плагин на страницу, вы можете проверить через javascript, чтобы сделать соответствующие вызовы.

...