Files
socket.io/lib/util.js
2010-10-30 21:28:48 -03:00

60 lines
1.3 KiB
JavaScript

/**
* Socket.IO client
*
* @author Guillermo Rauch <guillermo@learnboost.com>
* @license The MIT license.
* @copyright Copyright (c) 2010 LearnBoost <dev@learnboost.com>
*/
(function(){
var _pageLoaded = false;
io.util = {
ios: false,
load: function(fn){
if (document.readyState == 'complete' || _pageLoaded) return fn();
if ('attachEvent' in window){
window.attachEvent('onload', fn);
} else {
window.addEventListener('load', fn, false);
}
},
inherit: function(ctor, superCtor){
// no support for `instanceof` for now
for (var i in superCtor.prototype){
ctor.prototype[i] = superCtor.prototype[i];
}
},
indexOf: function(arr, item, from){
for (var l = arr.length, i = (from < 0) ? Math.max(0, l + from) : from || 0; i < l; i++){
if (arr[i] === item) return i;
}
return -1;
},
isArray: function(obj){
return Object.prototype.toString.call(obj) === '[object Array]';
},
merge: function(target, additional){
for (var i in additional)
if (additional.hasOwnProperty(i))
target[i] = additional[i];
}
};
io.util.ios = /iphone|ipad/i.test(navigator.userAgent);
io.util.android = /android/i.test(navigator.userAgent);
io.util.opera = /opera/i.test(navigator.userAgent);
io.util.load(function(){
_pageLoaded = true;
});
})();