NPAPI конфликт нескольких экземпляров - PullRequest
0 голосов
/ 27 февраля 2012

Я разработал скрипт-плагин NPAPI. Когда я пытаюсь загрузить один экземпляр в Chrome / Firefox, у меня нет проблем с возвратом к веб-странице (веб-странице A) и ее javascript. Но как только я открываю новую страницу (веб-страницу B) с помощью встроенного плагина, он хочет обмениваться информацией с веб-страницей A, а не с веб-страницей B. Как мне различить эти две страницы?

Может ли это быть из-за того, что точки входа уже установлены и требуют сброса на правильный экземпляр?

Спасибо

1 Ответ

1 голос
/ 28 февраля 2012

Точки входа не влияют на то, о чем вы говорите; скорее всего, вы неправильно отслеживаете экземпляры АЭС или у вас есть что-то глобальное, чего не должно быть.

Основные точки входа не зависят от конкретного экземпляра; если вы посмотрите на функции NPP_ *, все те, которые являются специфическими для экземпляра, принимают «NPP» в качестве первого параметра; как правило, вы сохраняете указатель на какую-то структуру данных в поле pdata NPP, и это то, что вы должны использовать, чтобы различать разные экземпляры. Если вы делаете это неправильно, или если где-то еще вы храните глобальную или статическую переменную, которая должна относиться к конкретному экземпляру, все это может вызвать проблему, которую вы описываете.

Вы можете рассмотреть возможность использования FireBreath или Nixysa ; первая абстрагирует большую часть проблем NPAPI и дает вам поддержку IE, а вторая может сгенерировать скелет с API для вас, чтобы вы заполнили другой код и начали с того, что уже работает.

Дополнительную информацию о том, как работает структура АЭС и как вы различаете разные экземпляры, можно найти по адресу http://npapi.com/tutorial2

...