75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| window.Util = {
 | |
|   isNumber: function (n) {
 | |
|     return typeof n === 'number' && !isNaN(n);
 | |
|   },
 | |
|   isFunction: function (fn) {
 | |
|     return typeof fn === 'function';
 | |
|   },
 | |
|   hasClass: function (element, className) {
 | |
|     return element.classList.contains(className);
 | |
|   },
 | |
|   getByClass: function (element, className) {
 | |
|     return element.getElementsByClassName ?
 | |
|       element.getElementsByClassName(className) :
 | |
|       element.querySelectorAll('.' + className);
 | |
|   },
 | |
|   createImage: function (attrs) {
 | |
|     var container = document.createElement('div');
 | |
|     var image = new Image();
 | |
|     var attr;
 | |
| 
 | |
|     if (typeof attrs !== 'object') {
 | |
|       attrs = {};
 | |
|     }
 | |
| 
 | |
|     if (!attrs.src) {
 | |
|       attrs.src = '../docs/images/picture.jpg';
 | |
|     }
 | |
| 
 | |
|     for (attr in attrs) {
 | |
|       if (attrs.hasOwnProperty(attr)) {
 | |
|         image[attr] = attrs[attr];
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     container.className = 'container';
 | |
|     container.appendChild(image);
 | |
|     document.body.appendChild(container);
 | |
| 
 | |
|     return image;
 | |
|   },
 | |
|   dispatchEvent: function (element, type, data) {
 | |
|     var event;
 | |
| 
 | |
|     if (element.dispatchEvent) {
 | |
|       // Event and CustomEvent on IE9-11 are global objects, not constructors
 | |
|       if (typeof Event === 'function' && typeof CustomEvent === 'function') {
 | |
|         if (!data) {
 | |
|           event = new Event(type, {
 | |
|             bubbles: true,
 | |
|             cancelable: true
 | |
|           });
 | |
|         } else {
 | |
|           event = new CustomEvent(type, {
 | |
|             detail: data,
 | |
|             bubbles: true,
 | |
|             cancelable: true
 | |
|           });
 | |
|         }
 | |
|       } else if (!data) {
 | |
|         event = document.createEvent('Event');
 | |
|         event.initEvent(type, true, true);
 | |
|       } else {
 | |
|         event = document.createEvent('CustomEvent');
 | |
|         event.initCustomEvent(type, true, true, data);
 | |
|       }
 | |
| 
 | |
|       // IE9+
 | |
|       return element.dispatchEvent(event);
 | |
|     } else if (element.fireEvent) {
 | |
|       // IE6-10 (native events only)
 | |
|       return element.fireEvent('on' + type);
 | |
|     }
 | |
|   }
 | |
| };
 |