Выгрузить плагин NPAPI с помощью вызова метода скрипта

У меня есть плагин NPAPI для браузера Mac Safari/fire Fox. У плагинов есть несколько методов, и я могу вызвать его из java-скрипта. Я хотел знать, могу ли я закрыть или выгрузить плагин с помощью метода реализации внутри него. Мне нужна эта функция для выгрузки плагин из браузера/памяти.


person Chris_vr    schedule 29.08.2013    source источник


Ответы (1)


Краткий ответ: Нет.

Более длинный ответ: не совсем. Что вы можете сделать, так это удалить тег объекта из DOM, что приведет к выгрузке этого экземпляра. Это не гарантирует, что браузер выгрузит модуль, но, по крайней мере, убирает экземпляр с вашего пути.

Большинство людей, которые хотят это сделать, пытаются найти способ обновить плагин, не закрывая браузер; вы можете сделать это, но вам нужно установить новый плагин с именем файла, отличным от старого плагина. Я говорю об имени файла пакета .plugin/, а не о бинарном файле внутри него.

Если у вас есть плагин в ~/Internet Plugins/MyPlugin-1.0.0.0, и вы удалите его и поместите новый плагин в ~/Internet Plugins/MyPlugin-1.0.0.1, а затем в javascript вы вызовете navigator.plugins.refresh(false);, браузер найдет новый плагин, и когда вы создадите его экземпляр, он предоставит вам новую версию. Однако пакет должен называться по-другому; это ключ.

person taxilian    schedule 29.08.2013
comment
вы не можете ожидать, что пользователь удалит плагины из папки. Подумайте о более широкой перспективе, если плагин, который я использовал на веб-сайте, и многие пользователи используют его. - person Chris_vr; 06.09.2013
comment
Зачем пользователю удалять плагины из папки? Я не говорил, что вам нужно оставить старый на месте, просто новый должен иметь другое имя, иначе браузер его не обнаружит. В Mac OS вы можете абсолютно удалить старый плагин, пока он все еще используется — как только он больше не используется, он будет фактически удален, но в то же время он будет казаться удаленным для всех, кто еще не обращается к нему. . - person taxilian; 06.09.2013