diff --git a/examples/browser.html b/examples/browser.html new file mode 100644 index 0000000000..709af02ddd --- /dev/null +++ b/examples/browser.html @@ -0,0 +1,99 @@ + + + + + + OpenLayers Browser Detection + + + + + + + +

Browser detection

+ +

+ The goal of this script is to inform about the capacity of the browser used by the user. +

+
+

+ See the + browser.js source to see how this is done. +

+
+ +

Your browser information

+ +
+ +
+ + diff --git a/examples/browser.js b/examples/browser.js new file mode 100644 index 0000000000..d2a9257173 --- /dev/null +++ b/examples/browser.js @@ -0,0 +1,52 @@ +var isEventSupported = (function(undef) { + + var TAGNAMES = { + 'select':'input', + 'change':'input', + 'submit':'form', + 'reset':'form', + 'error':'img', + 'load':'img', + 'abort':'img' + }; + + function isEventSupported(eventName, element) { + element = element || document.createElement(TAGNAMES[eventName] || 'div'); + eventName = 'on' + eventName; + + var isSupported = (eventName in element); + + if (!isSupported) { + // if it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element + if (!element.setAttribute) { + element = document.createElement('div'); + } + if (element.setAttribute && element.removeAttribute) { + element.setAttribute(eventName, ''); + isSupported = typeof element[eventName] == 'function'; + + // if property was created, "remove it" (by setting value to `undefined`) + if (typeof element[eventName] != 'undefined') { + element[eventName] = undef; + } + element.removeAttribute(eventName); + } + } + + element = null; + return isSupported; + } + + return isEventSupported; +})(); + +function divResult(category, name, element, div) { + div.innerHTML = div.innerHTML + category + " " + name + ": "; + div.innerHTML = div.innerHTML + ( + isEventSupported(name, element) + ? 'true' + : 'false' + ); + div.innerHTML = div.innerHTML + "
"; +} +