Невозможно получить доступ к функциям NPAPI в расширении Firefox
У меня проблемы с загрузкой плагина NPAPI для расширения Firefox. То, как я это делаю сейчас, - это то, что плагин уже зарегистрирован в Windows, поэтому я загружаю элемент embed через оверлей, который внедряется в chrome и доступен через window.onload. Очевидно, элемент NPAPI загружен, но я не могу получить доступ к каким-либо собственным функциям.
Вот мой main.xul:
<overlay ...>
<window id="main-window">
<embed type="application/x-myplugin" id="myplugin" width="300" height="300"></embed>
</window>
</overlay>
Я установил значения ширины / высоты, чтобы видеть вставку, вставленную в хром.
Вот мой JS:
window.addEventListener("load", function () {
var plugin = document.getElementById("myplugin");
dump(plugin + "\n");
dump("version: " + plugin.version + "\n");
});
Свалка:
[object XULElement]
undefined
Если бы тот же код встраивания был помещен в документ HTML, plugin.version вернул бы "1000". Плагин NPAPI подтвержден и работает, так как я могу заставить его работать в HTML-документе и загружать его в расширение Chrome.
Я что-то не так делаю? Обратите внимание, что я должен загрузить плагин NPAPI внутри Chrome, а не вставлять его по требованию на страницу, так как свойства должны быть получены из других диалоговых окон, отдельно от веб-страницы. Возможно, есть другой способ загрузить плагин NPAPI, который можно загрузить один раз за загрузку браузера, который можно вызвать из расширения Firefox.
Если это какая-либо помощь, NPAPI был построен с фреймворком Firebreath.
Примечание: я проследовал по этой теме: ссылка и, очевидно, может загрузить плагин, но все еще не может получить доступ к каким-либо функциям.
Благодарю.
1 ответ
Здесь нет <embed>
тег в XUL, вы хотите использовать HTML <embed>
тег. Используйте пространство имен HTML для этого тега:
<embed xmlns="http://www.w3.org/1999/xhtml" ...></embed>
Дополнительная информация: https://developer.mozilla.org/en/Namespaces