123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- (function(window,undefined){
- "use strict";
-
- var History = window.History = window.History||{};
-
- if ( typeof History.Adapter !== 'undefined' ) {
- throw new Error('History.js Adapter has already been loaded...');
- }
-
- History.Adapter = {
-
- handlers: {},
-
- _uid: 1,
-
- uid: function(element){
- return element._uid || (element._uid = History.Adapter._uid++);
- },
-
- bind: function(element,eventName,callback){
-
- var uid = History.Adapter.uid(element);
-
- History.Adapter.handlers[uid] = History.Adapter.handlers[uid] || {};
- History.Adapter.handlers[uid][eventName] = History.Adapter.handlers[uid][eventName] || [];
- History.Adapter.handlers[uid][eventName].push(callback);
-
- element['on'+eventName] = (function(element,eventName){
- return function(event){
- History.Adapter.trigger(element,eventName,event);
- };
- })(element,eventName);
- },
-
- trigger: function(element,eventName,event){
-
- event = event || {};
- var uid = History.Adapter.uid(element),
- i,n;
-
- History.Adapter.handlers[uid] = History.Adapter.handlers[uid] || {};
- History.Adapter.handlers[uid][eventName] = History.Adapter.handlers[uid][eventName] || [];
-
- for ( i=0,n=History.Adapter.handlers[uid][eventName].length; i<n; ++i ) {
- History.Adapter.handlers[uid][eventName][i].apply(this,[event]);
- }
- },
-
- extractEventData: function(key,event){
- var result = (event && event[key]) || undefined;
- return result;
- },
-
- onDomLoad: function(callback) {
- var timeout = window.setTimeout(function(){
- callback();
- },2000);
- window.onload = function(){
- clearTimeout(timeout);
- callback();
- };
- }
- };
-
- if ( typeof History.init !== 'undefined' ) {
- History.init();
- }
- })(window);
|