1 /*global $, window, document, BytePushers*/ 2 (function (window, document, BytePushers) { 3 'use strict'; 4 BytePushers = BytePushers || {}; 5 BytePushers.DOMUtility = BytePushers.namespace("software.bytepushers.utils.DOMUtility"); 6 BytePushers.DOMUtility.addListener = null; 7 BytePushers.DOMUtility.removeListener = null; 8 BytePushers.DOMUtility.querySelector = null; 9 BytePushers.DOMUtility.querySelectorAll = null; 10 BytePushers.DOMUtility.filterMetaData = function (data) { 11 data = data.replace(/<meta\s[\w\W]*>/gi, ""); 12 return data; 13 }; 14 // the implementation 15 if (typeof window.addEventListener === 'function') { 16 BytePushers.DOMUtility.addListener = function (el, type, fn) { 17 el.addEventListener(type, fn, false); 18 }; 19 BytePushers.DOMUtility.removeListener = function (el, type, fn) { 20 el.removeEventListener(type, fn, false); 21 }; 22 } else if (typeof document.attachEvent === 'function') { // IE 23 BytePushers.DOMUtility.addListener = function (el, type, fn) { 24 el.attachEvent('on' + type, fn); 25 }; 26 BytePushers.DOMUtility.removeListener = function (el, type, fn) { 27 el.detachEvent('on' + type, fn); 28 }; 29 } else { // older browsers 30 BytePushers.DOMUtility.addListener = function (el, type, fn) { 31 el['on' + type] = fn; 32 }; 33 BytePushers.DOMUtility.removeListener = function (el, type) { 34 el['on' + type] = null; 35 }; 36 } 37 if (typeof document.querySelector === "function") { 38 BytePushers.DOMUtility.querySelector = function (selector) { 39 return document.querySelector(selector); 40 }; 41 } else if (typeof document.getElementsByClassName === "function") { 42 BytePushers.DOMUtility.querySelector = function (selector) { 43 return document.getElementsByClassName(selector); 44 }; 45 } else if (typeof $ === "function") { 46 BytePushers.DOMUtility.querySelector = function (selector) { 47 return $(selector); 48 }; 49 } else { 50 throw ("document.querySelector() method is not supported by your browser. Please contact the administrator for this app."); 51 } 52 if (typeof document.querySelectorAll === "function") { 53 BytePushers.DOMUtility.querySelectorAll = function (selector) { 54 return document.querySelectorAll(selector); 55 }; 56 } else if (typeof document.getElementsByClassName === "function") { 57 BytePushers.DOMUtility.querySelectorAll = function (selector) { 58 return document.getElementsByClassName(selector); 59 }; 60 } else if (typeof $ === "function") { 61 BytePushers.DOMUtility.querySelector = function (selector) { 62 return $(selector); 63 }; 64 } else { 65 throw ("document.querySelectorAll() method is not supported by your browser. Please contact the administrator for this app."); 66 } 67 }(window, document, BytePushers));