Firefox Tab Tearing убивает моего NPPlugin - PullRequest
1 голос
/ 14 декабря 2009

У меня есть плагин NPAPI, который работает в Firefox, но каждый раз, когда вкладка «обрывается» (путем перетаскивания вкладки в пространство, чтобы сформировалось новое окно), плагин уничтожается и воссоздается. Проблема в том, что плагин должен быть инициализирован информацией из вызова Ajax, и я не могу найти какой-либо способ в Javascript, чтобы обнаружить это, поэтому плагин не получает необходимую информацию инициализации.

Итак, есть ли идеи относительно того, как обнаружить это событие и / или сделать так, чтобы плагин не был уничтожен / воссоздан, когда вкладка оторвана?

1 Ответ

0 голосов
/ 25 декабря 2009

С какой операционной системой вы работаете? Если он действительно уничтожает ваш плагин и воссоздает его, вы всегда можете попытаться плагином вызвать метод javascript при запуске.

Укажите имя функции в теге param, а затем при запуске плагина попытайтесь получить ссылку на этот метод, вызвав NPN_GetProperty в окне NPObject (который можно получить, вызвав NPN_GetValue (NPNVWindowNPObject, & npobjectptr) и затем вызвав NPN_GetProperty (npp, npobjectptr, NPN_GetStringIdentifier (имя функции), & destObj)

Затем вы можете вызвать этот метод со ссылкой на ваш плагин (который вы можете получить снова с помощью NPN_GetValue), и функция js будет знать, что пришло время инициализировать ваш плагин (снова?).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...