From 1ee40cec0239e7ce5699df63b13e506a7e1fca5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sat, 8 Oct 2011 00:06:28 +0200 Subject: [PATCH] IE<7 needs a reflow when the tiles are loaded --- lib/OpenLayers/Tile/Image.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/OpenLayers/Tile/Image.js b/lib/OpenLayers/Tile/Image.js index c3037256b6..7d6269c348 100644 --- a/lib/OpenLayers/Tile/Image.js +++ b/lib/OpenLayers/Tile/Image.js @@ -346,6 +346,23 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile.BackBufferable, { this.isLoading = false; this.events.triggerEvent("loadend"); + // IE<7 needs a reflow when the tiles are loaded because of the + // percentage based positioning. Otherwise nothing is shown + // until the user interacts with the map in some way. + if (parseFloat(navigator.appVersion.split("MSIE")[1]) < 7) { + if (!this.layer || !this.layer.div) { + // nothing to do if the layer is destroyed already + return; + } + var span = document.createElement("span"); + span.style.display = "none"; + var layerDiv = this.layer.div; + layerDiv.appendChild(span); + window.setTimeout(function() { + span.parentNode === layerDiv && span.parentNode.removeChild(span); + }, 0); + } + if (this.layerAlphaHack === true) { img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +