From 83f9422296a123df58520d0eacaa53614144bb4f Mon Sep 17 00:00:00 2001 From: crschmidt Date: Tue, 22 Feb 2011 09:49:37 +0000 Subject: [PATCH] Adding a test page to show mobile browser events; this is useful for when a new device is available to understand what events are supported by a given browser. git-svn-id: http://svn.openlayers.org/trunk/openlayers@11219 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- examples/browser.html | 99 +++++++++++++++++++++++++++++++++++++++++++ examples/browser.js | 52 +++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 examples/browser.html create mode 100644 examples/browser.js 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 + "
"; +} +