diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index 63f0aaab2a..73ce4e8024 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -1287,6 +1287,11 @@ OpenLayers.Layer = OpenLayers.Class({ var childNodes = this.div.childNodes; for(var i = 0, len = childNodes.length; i < len; ++i) { var element = childNodes[i].firstChild || childNodes[i]; + var lastChild = childNodes[i].lastChild; + //TODO de-uglify this + if (lastChild && lastChild.nodeName.toLowerCase() === "iframe") { + element = lastChild.parentNode; + } OpenLayers.Util.modifyDOMElement(element, null, null, null, null, null, null, opacity); } diff --git a/lib/OpenLayers/Tile/Image/IFrame.js b/lib/OpenLayers/Tile/Image/IFrame.js index 6a5a369598..f3e408e78a 100644 --- a/lib/OpenLayers/Tile/Image/IFrame.js +++ b/lib/OpenLayers/Tile/Image/IFrame.js @@ -196,6 +196,19 @@ OpenLayers.Tile.Image.IFrame = { OpenLayers.Tile.Image.prototype.setImgSrc.apply(this, arguments); } }, + + /** + * Method: onImageLoad + * Handler for the image onload event + */ + onImageLoad: function() { + //TODO de-uglify opacity handling + OpenLayers.Tile.Image.prototype.onImageLoad.apply(this, arguments); + if (this.useIFrame === true) { + this.imgDiv.style.opacity = 1; + this.frame.style.opacity = this.layer.opacity; + } + }, /** * Method: createBackBuffer