123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /**
- * History.js MooTools Adapter
- * @author Benjamin Arthur Lupton <contact@balupton.com>
- * @copyright 2010-2011 Benjamin Arthur Lupton <contact@balupton.com>
- * @license New BSD License <http://creativecommons.org/licenses/BSD/>
- */
- // Closure
- (function(window,undefined){
- "use strict";
- // Localise Globals
- var
- History = window.History = window.History||{},
- MooTools = window.MooTools,
- Element = window.Element;
- // Check Existence
- if ( typeof History.Adapter !== 'undefined' ) {
- throw new Error('History.js Adapter has already been loaded...');
- }
- // Make MooTools aware of History.js Events
- Object.append(Element.NativeEvents,{
- 'popstate':2,
- 'hashchange':2
- });
- // Add the Adapter
- History.Adapter = {
- /**
- * History.Adapter.bind(el,event,callback)
- * @param {Element|string} el
- * @param {string} event - custom and standard events
- * @param {function} callback
- * @return {void}
- */
- bind: function(el,event,callback){
- var El = typeof el === 'string' ? document.id(el) : el;
- El.addEvent(event,callback);
- },
- /**
- * History.Adapter.trigger(el,event)
- * @param {Element|string} el
- * @param {string} event - custom and standard events
- * @param {Object=} extra - a object of extra event data (optional)
- * @return void
- */
- trigger: function(el,event,extra){
- var El = typeof el === 'string' ? document.id(el) : el;
- El.fireEvent(event,extra);
- },
- /**
- * History.Adapter.extractEventData(key,event,extra)
- * @param {string} key - key for the event data to extract
- * @param {string} event - custom and standard events
- * @return {mixed}
- */
- extractEventData: function(key,event){
- // MooTools Native then MooTools Custom
- var result = (event && event.event && event.event[key]) || (event && event[key]) || undefined;
- // Return
- return result;
- },
- /**
- * History.Adapter.onDomLoad(callback)
- * @param {function} callback
- * @return {void}
- */
- onDomLoad: function(callback) {
- window.addEvent('domready',callback);
- }
- };
- // Try and Initialise History
- if ( typeof History.init !== 'undefined' ) {
- History.init();
- }
- })(window);
|