>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Вызов функций JavaScript'а из расширения написанного на C++(XPCOM)? http://forum.mozilla-russia.org/viewtopic.php?id=8812 |
baraboshinkg > 06-03-2006 17:44:32 |
Собственно есть раширение ввиде тулбара, у него есть JS обрабатывающий нажатия кнопок и т.п. Он в свою очередь создаёт и вызывает XPCOM объект написаный на C++. Здесь всё шеколадно, а вот как сделать наоборот? Что бы из этого объекта вызвать функции того JS? Я подозреваю что это не сложно, но что то не могу найти ни как.... |
cesspit > 07-03-2006 10:56:58 |
1) оперировать придётся интерфейсами а не функциями. Интерфейсы js нужно передать в C++ код, чтобы оттуда с ними работать. [scriptable, uuid(...)] , и метод вашего компонента, работающий с этим интерфейсом [scriptable, uuid(...)] 3) на javascript создаёте объект реализующий интерфейс callback-а var listener = { 4) пишете C++ код по работе с интерфейсом: NS_IMETHODIMP СYourComponent::workWithCallBack(ICallBack* cb) что-то типа того, за работоспособность этого кода не ручаюсь, на ходу придумывал, но идея такая. |
baraboshinkg > 07-03-2006 15:02:24 |
Спасибо. Всё работает. Я уже почти догадался как это сделать, когда ответ прочёл. А Вы потвердили мою догадку. |