Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2014, 14:31
Аватар для korobochkin
Новичок на форуме
Отправить личное сообщение для korobochkin Посмотреть профиль Найти все сообщения от korobochkin
 
Регистрация: 19.07.2014
Сообщений: 2

Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код?
Делаю небольшой плагин чата под Вордпресс, используя в качестве основы Java Script библиотеку Candy (работает с XMPP). В Candy есть функция SetNickname, которая изменяет ник, но она ничего не возвращает — а значит нельзя узнать был изменен ник или нет (ник не изменится, если занят кем-то другим и т. п.). После вызова SetNickname сервер присылает Presense, сообщение, которое обрабатывается в Candy.Core.Event.Jabber.Room.Presence — оттуда как раз можно узнать был изменен ник или нет.

Как запустить свою функцию из Candy.Core.Event.Jabber.Room.Presence, которая будет уже что-то сохранять в базу данных?

В файле core.js был найден следующий код, который, как я понимаю, позволяет "цепляться" за события, которые происходят в Candy.

/** Function: registerEventHandlers
* Adds listening handlers to the connection.
*
* Use with caution from outside of Candy.
*/
self.registerEventHandlers = function() {
self.addHandler(self.Event.Jabber.Version, Strophe.NS.VERSION, 'iq');
self.addHandler(self.Event.Jabber.Presence, null, 'presence');
self.addHandler(self.Event.Jabber.Message, null, 'message');
self.addHandler(self.Event.Jabber.Bookmarks, Strophe.NS.PRIVATE, 'iq');
self.addHandler(self.Event.Jabber.Room.Disco, Strophe.NS.DISCO_INFO, 'iq', 'result');

self.addHandler(_connection.disco._onDiscoInfo.bind(_connection.disco), Strophe.NS.DISCO_INFO, 'iq', 'get');
self.addHandler(_connection.disco._onDiscoItems.bind(_connection.disco), Strophe.NS.DISCO_ITEMS, 'iq', 'get');
self.addHandler(_connection.caps._delegateCapabilities.bind(_connection.caps), Strophe.NS.CAPS);
};
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2014, 15:22
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Судя по коду, Candy.Core.Event.Jabber.Room.Presence триггерит 'candy:core.presence.room', попробуй забиндиться на него и посмотреть что приходит.
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2014, 16:17
Аватар для korobochkin
Новичок на форуме
Отправить личное сообщение для korobochkin Посмотреть профиль Найти все сообщения от korobochkin
 
Регистрация: 19.07.2014
Сообщений: 2

Я только начал знакомство с JS, поэтому буду признателен более подробному объяснению на пальцах. Слово «забиндится» не понятно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как реализовать свою функцию к переменной czp Общие вопросы Javascript 2 01.01.2012 19:52
Как вызвать функцию из другого файла Mukhtar AJAX и COMET 4 07.10.2011 22:01
как изментить функцию прямо из кода!! magavnuk Events/DOM/Window 2 27.12.2009 10:33
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02
как вызвать функцию? pumpurumer jQuery 2 27.08.2009 19:39