Firefox Gecko SDK: NPP_GetValue не вызывается

Я опробовал образец NPRuntime, поставляемый с Gecko SDK 1.9.1, с помощью этой ссылки.

Он отлично работает с Firefox 3.6.

Следуя вышеуказанным шагам, я создал новый скриптовый плагин (npmyplugin.dll). В настоящее время я помещаю npmyplugin.dll в папку, отличную от Firefox/plugins. Я регистрирую связанный тип mime и путь к плагину в реестре. Плагин загружается нормально. Но теперь браузер не вызывает NPP_GetValue.

Я подозревал, что это должно быть потому, что я размещаю плагин в каталоге, отличном от Firefox/plugins. Поэтому я сделал то же самое с npruntime.dll (образец, поставляемый с Gecko sdk). Удивительно, но npruntime.dll скрипты работали. Пожалуйста, подскажите, не пропустил ли я что-то важное при создании нового плагина.


person user247108    schedule 10.02.2010    source источник
comment
Попробуйте mozilla.dev.tech.plugins ‹groups.google .com/group/mozilla.dev.tech.plugins/topics?pli=1›, если здесь нет ответа.   -  person Nickolay    schedule 11.02.2010
comment
Вы проверили, звонят ли NP_Initialize() и т. д.?   -  person Georg Fritzsche    schedule 14.02.2010
comment
Я использую firefox версии 26.0, тогда этот Gecko SDK будет работать?   -  person    schedule 02.01.2014


Ответы (2)


Во многих случаях NPP_GetValue не вызывается для получения NPObject до тех пор, пока вы впервые не получите к нему доступ с помощью javascript. Когда вы делаете getElementById, он делает вызов.

Скорее всего, другие вызовы GetValue выполняются, но вы их не видите, потому что не обрабатываете их. Однако это все еще не гарантировано.

person taxilian    schedule 03.08.2010
comment
Когда я думаю об этом, я думаю, что также видел, как эта проблема возникает при использовании тега «embed» в некоторых браузерах. Не уверен, почему. Просто будьте осторожны и используйте ‹object›; не знаю почему, но он стабильно работает лучше, чем ‹embed› - person taxilian; 14.09.2010

Извините, что отвечаю так поздно. Я как-то решил проблему. Я встраивал плагин, используя тег

затем я написал небольшой код javascript

var MyWorkingPlugin = document.getElementById('MyPlugin');

Кажется, что после выполнения вышеуказанного javascript был вызван NPP_GetValue. В настоящее время у меня нет убедительной причины, почему это произошло, но это сработало, и я счастлив на данный момент. Если кто-нибудь может объяснить описанное выше поведение, сообщите нам об этом.

person user247108    schedule 06.03.2010