Страницы: 1
Некоторым нужны.
Ладно, нашел живой пример https://bugzilla.mozilla.org/show_bug.cgi?id=73874
разбираюсь
Собрал плагин (именно плагин) из примера
вот по этой ссылке: https://developer.mozilla.org/en/Compil … ual_Studio
вот этот самый простой - simple плагин: http://mxr.mozilla.org/seamonkey/source … es/simple/
Получил dll-ку, кладу ее в C:\Program Files\Mozilla Firefox\plugins и пофиг... Пробовал и переименовать npXXX32.dll, пробовал xpt файл туда же сунуть - пофиг... Нет плагина в ФФ-е.
Может у кого примерчик живой есть? Или подскажите - может надо xpi сделать наподобие расширения, или как-то его зарегистрировать надо может...
Статью о установке плагинов как расширений читал, плагин ставится, но выглядит расширением и как плагин не работает всеравно
Ага. Нашел вариант.
в html-e:
<input id="test" type="hidden" value="" />
в компоненте:
document.getElementById("aspSideBar").contentDocument.getElementById("test").wrappedJSObject.watch("value", onValueChanged);
и:
function onValueChanged(propName, oldVal, newVal) {
...
}
Потом может еще попробую через AddListener
Спасибо, счас зачтем...
Ну допустим. А теперь чуть подругому спрошу. И страничка, и компопнента пишутся одним "коллективом". Как можно взаимодействовать между ними?
Добрый день,
Есть расширение для ФФ-а - сайдбар, в нем вставлен браузер, а в нем страничка. Как можно из этой странички вызвать функцию в расширении?
В ИЕ это решилось через windows.external.MyFunc(), а в ФФ в какую сторону посмотреть?
Forest
Это вызывается из расширения, из js-файла
Требования... просто надо побольше работы с флешем спрятать в си. js-то разархивировал и правь-не хочу...
Либо действительно сделать js-функцию с получением переменной и вызывать ее из сей? Так-то можно?
А можно ли в си-мотоде xpcom-а узнать откуда его позвали? Ну хотябы из какого js-файла...
Непойдет... надо бы именно на сях
Работаем с флешем. Есть на страничке swf-ка
И из моего расширения надо взять значение переменной в ней.
я и беру:
var movie = window.content.document.embeds[swfIndex].wrappedJSObject;
var value = movie.GetVariable(variable);
и все хорошо.
Но возникла надобность сделать это их сишного xpcom
И какие бы варианты кода я не писал (найденного в сети) и что бы я не делал при вызове GetVariable либо просто не срабатывает, но чаще всего просто программа валится с "любимой" сишной ошибкой "0x00000005". Причем объекты вроде в порядке - я могу добыть все свойства этого movie. Только функцию не позвать
Ежели кто делал подобное - пришлите образец вызова второй строчки
var value = movie.GetVariable(variable);
Чесслово - заработает - пойду пошлю вам сотку баксов, достало уже...
Свой код не привожу - там уже такое мясо... а толку 0
Когда страница грузится - там приходит на событие load и фреймы, и документ
А вот когда жмешь кнопки "Вперед-Назад", уже нет. Некий ивент конечно приходит, но сам документ уже нет. Но эти "некие ивенты" приходият и на обчной загрузке по смене урл-а, и по многу...
А мне в прнципе достаточно просто знать что другая страница загрузилась
Или что, прогрессы пользовать, тапа вот:
http://developer.mozilla.org/en/docs/nsIWebProgress (onLocationChange())
я может не так задал вопрос. До самих dom-объектов я дотягиваюсь без всяких проблем. Речь о том, как вызвать "привязанные" с ним js-объекты
Есть расширение, в нем
xul-оверлей-тулбар и связанный с ним js-файл.
также в расширении xul-сайдбар и тоже со своим js-файлом
Я в FF недавно, поэтому, на мой взгляд, получается два объекта.
Как из из одного в другой что-то передавать? До своего и оппозитно xul-ей я могу дотянуться. А вот попасть в другой "объект"?
Вызвать в нем некий метод... или через ивент... как это делается?
Или другой вариант - я делаю хрсом-компоненту, которую испоользую как singleton. И лезу в нее со своих тулбар и сайдбара. НО тогда получится, если юзер откроет еще одну мозиллу, то другая пара сайд-тулбаров тоже полезут в эту же компоненту... а мне надо чтоб она была у каждого окна мозиллы своя.
Куда же рыть?
Ну от снифера можно я так понимаю ssl-ем прикрыться
А dll-ка есть, но вся работа в js-е... т.е. я если вызову dll-ку с нужним мне значением, то кто помешает кому-то осуществить тот же вызов с другим?
Добавлено Thu Jun 26 15:29:48 2008 :
а вот скажем - можно ли из длл-ки проверить md5 js-файла?
Вот создал я тулбарчик, который "что-то" считает и "куда-то" отправляет.
Можно ли как-то защититься от того, что кто-то этот xpi развернет, заменит в нем отправку на "что-то"*100 и соберет заново?
думаю, тебе сюда: http://developer.mozilla.org/en/docs/Us … ginManager
Да, приятная библиотечка...
Подскажи, как стереть при удалении
Спасибо большое, счас воткну. (Блин столько кода ради такой простой задачи...)
Мне надо, чтоб после установки расширения, когда ФФ откроют в следующий раз (или по кнопке Перегразить ФФ)
расширение поняло, что это его первый запуск после инсталла.
Или, используя ваш вариант, через registerSelf записать в реестр, а потом проверять?
Причем первый раз после инсталляции. т.е. если мой.xpi проинсталлят еще раз, то это тоже "первый"
попробовал создать файл pref.js и записать туда строчку.
pref("extensions.xxxx.yyyy", "zzzz")
В расширении вычитал значение, и установил в "". Но очередной инсталл его не уже обновляет. Так и остается ""...
Попробовал сносить этот бранч "extensions.xxxx" целиком - сносится, about:config его уже не показывает. НО значение там осталось! И я его получаю...
Не тем путем иду? Как надо?
Вот спасибо!!! :D
Всем привет :)
Есть тулбар и сайдбар - оба мои. Сайдбар ловится обсервером, там все просто. А вот для тулбара есть что-то?
Так, понял что нужный мне объект оборачивается с "помощью" XPCNativeWrapper :puss: Надо манифест и в нем: xpcnativewrappers=no . Будем копать
Добрый день.
есть html-страничка, на ней флешка в ebmed-е. Кладу на страничку кнопку с вызовом
function stopTimer() {
var v = window._content.document.embeds[0]
try {
alert(v.GetVariable("interfaceCPP.myScore"))
}
catch(ex) {
alert(ex)
}
}
открываю эту страничку в FF, кликаю, вижу свою переменную
Делаю расширение - тулбар с кнопкой, на кнопку пишу эту функцию - не работает.
"Type Error: GetVariable is not a function"
Кто-нибудь может подсказать как это победить?
Страницы: 1