Я создаю плагин NPAPI для Chrome/Firefox.
Из плагина я хотел бы получить фокус браузера и выбрать вкладку, в которой отображается мой плагин, откуда бы пользователь находился в пользовательском интерфейсе ОС.
На данный момент я могу получить фокус браузера, используя SetForegroundWindow(HWND)
; или SwitchToThisWindow(HWND, BOOL);
на родительском HWND окна плагина. Также я могу выбрать вкладку, предупредив ее. В любом случае диалоговое окно предупреждения является уродливым, и его невозможно закрыть.
Есть ли способ выбрать правильную вкладку из собственного кода NPAPI? Или из JavaScript?
NB: Я использую Firefox Nightly для тестов.
Вы не можете контролировать что-либо за пределами своего собственного окна плагинов из NPAPI, потому что NPAPI ничего не знает о чем-либо за пределами страницы. NPAPI ничего не знает о самом браузере или других страницах. Это по дизайну. Если есть какой-либо способ без использования системных API, чтобы делать то, что вы пытаетесь сделать, это будет вещь расширения, но я сомневаюсь.
Честно говоря, это просто не то, что плагины должны делать =]