Обычно Вы просили бы у контроллера своего приложения эту информацию, и это будет ответственно за знание, как сохранить его, это в любой модели данных существует. Контроллер Вашего приложения может или не может совпасть с делегатом приложений (в большинстве простых приложений, это - то же).
Я обновил ответ , который вы связали с , с более подробным описанием Прототипа
с учетом изменений в версиях 1.6.0
to 1.6.1
.
Там было очень запутано, но 1.6.1 несколько чистая:
var handler = function() { alert('clicked!') };
$(element).observe('click', handler);
// inspect
var clickEvents = element.getStorage().get('prototype_event_registry').get('click');
clickEvents.each(function(wrapper){
alert(wrapper.handler) // alerts "function() { alert('clicked!') }"
})
Теперь данные маршрутизируются через хранилище элементов :)
Element.getStorage (yourElement) .get ('prototype_event_registry')
предоставит вам экземпляр Hash
Prototype. 117199], так что вы можете делать все, что бы вы делали с хешем.
// to see which event types are being observed
Element.getStorage(yourElement).get('prototype_event_registry').keys();
// to get array of handlers for particular event type
Element.getStorage(yourElement).get('prototype_event_registry').get('click');
// to get array of all handlers
Element.getStorage(yourElement).get('prototype_event_registry').values();
// etc.
Обратите внимание, что это недокументированные внутренние детали , которые могут быть изменены в будущем, поэтому я бы не стал на них полагаться, за исключением, возможно, в целях отладки.