diff --git a/lib/OpenLayers/Control/PinchZoom.js b/lib/OpenLayers/Control/PinchZoom.js index bd502f3d7d..e7e3827e1d 100644 --- a/lib/OpenLayers/Control/PinchZoom.js +++ b/lib/OpenLayers/Control/PinchZoom.js @@ -162,7 +162,7 @@ OpenLayers.Control.PinchZoom = OpenLayers.Class(OpenLayers.Control, { */ applyTransform: function(transform) { var style = this.map.layerContainerDiv.style; - var transformProperty = OpenLayers.Util.getVendorPrefixedDom("transform"); + var transformProperty = OpenLayers.Util.getVendorPrefixedObj("transform"); if (transformProperty) { style[transformProperty] = transform; } diff --git a/lib/OpenLayers/Util.js b/lib/OpenLayers/Util.js index 6ae9a2987b..ce84785701 100644 --- a/lib/OpenLayers/Util.js +++ b/lib/OpenLayers/Util.js @@ -1509,10 +1509,10 @@ OpenLayers.Util.getBrowserName = function() { }; /** - * Constant: VENDOR_DOM_PREFIXES + * Constant: VENDOR_PREFIXES * {Array} A list of prefixes to test support for vendor-prefixed properties */ -OpenLayers.Util.VENDOR_DOM_PREFIXES = ["", "O", "ms", "Moz", "Webkit"]; +OpenLayers.Util.VENDOR_PREFIXES = ["", "O", "ms", "Moz", "webkit"]; /** * Method: getVendorPrefixedCss @@ -1530,7 +1530,8 @@ OpenLayers.Util.getVendorPrefixedCss = (function() { function domToCss(prefixedDom) { return prefixedDom. replace(/([A-Z])/g, function(char) { return "-" + char.toLowerCase(); }). - replace(/^ms-/, "-ms-"); + replace(/^ms-/, "-ms-"). + replace(/^webkit-/, "-webkit-"); } return function(property) { @@ -1540,7 +1541,7 @@ OpenLayers.Util.getVendorPrefixedCss = (function() { if (cache[property] === undefined) { var domProperty = property. replace(/(-.)/g, function(c) { return c.charAt(1).toUpperCase(); }); - var prefixedDom = OpenLayers.Util.getVendorPrefixedDom(domProperty); + var prefixedDom = OpenLayers.Util.getVendorPrefixedObj(domProperty); cache[property] = domToCss(prefixedDom); } return cache[property]; @@ -1548,39 +1549,44 @@ OpenLayers.Util.getVendorPrefixedCss = (function() { })(); /** - * Method: getVendorPrefixedDom + * Method: getVendorPrefixedObj * * Parameters: + * object - {Object} Optional object to test for vendor-prefixed properties. Defaults to a DIV's style object. * property - {String} The standard DOM style property name * * Returns: * {String} The DOM style property name supported by the browser or null if * unsupported */ -OpenLayers.Util.getVendorPrefixedDom = (function() { +OpenLayers.Util.getVendorPrefixedObj = (function() { var cache = {}; - return function(property) { + return function getVendorPrefixedObj(obj, property) { + // emulate method overloading + if (typeof obj === "string") { + return getVendorPrefixedObj(document.createElement("div").style, obj); + } + // clear cache for tests if (property === "clear cache") { cache = {}; return; } if (cache[property] === undefined) { - var el = document.createElement("div"), - tmpProp, + var tmpProp, i = 0, - l = OpenLayers.Util.VENDOR_DOM_PREFIXES.length, + l = OpenLayers.Util.VENDOR_PREFIXES.length, prefix; cache[property] = null; - for(var i=0,l=OpenLayers.Util.VENDOR_DOM_PREFIXES.length; i