[OpenLayers-Dev] IE 6 Bug
Erik Uzureau
erik.uzureau at metacarta.com
Mon Jul 30 11:20:42 EDT 2007
Forwarding bug report from Vincent-Gabriel V.:
>
> The following code causes a problem in IE
> 6.0.2900.2180.xpsp_sp2_gdr.070227-2254 on
> "element.offsetParent" (line 134-135 in OpenLayers.js).
>
> <html>
> <head>
> <link rel="stylesheet"
> href="./theme/default/style.css" type="text/css" />
> <style type="text/css">
> div.olControlMousePosition
> {
> color:white;
> }
> </style>
> <script type="text/javascript" src="./OpenLayers.js"></script>
> <script type="text/javascript">
> //<![CDATA[
> var onLoad = function()
> {
> var map = new OpenLayers.Map('map',{controls: [],
> maxResolution: 'auto'});
>
> map.addControl(new
> OpenLayers.Control.LayerSwitcher());
> map.addControl(new OpenLayers.Control.PanZoomBar());
> map.addControl(new
> OpenLayers.Control.MouseDefaults());
> map.addControl(new OpenLayers.Control.Permalink());
> map.addControl(new
> OpenLayers.Control.Permalink('permalink'));
> map.addControl(new
> OpenLayers.Control.MousePosition());
> map.addControl(new OpenLayers.Control.OverviewMap());
> map.addControl(new
> OpenLayers.Control.KeyboardDefaults());
>
> var nasa = new OpenLayers.Layer.WMS("NASA -
> BMNG",["http://wms.jpl.nasa.gov/wms.cgi"],{layers:["modis"]});
> map.addLayer(nasa);
> var na = new OpenLayers.Layer.WMS("Atlas of Canada -
> Hydrology","http://atlas.gc.ca/cgi-bin/atlaswms_en",{layers:[/*'na_nat',*/'na_freshwat','na_drain'],transparent:"true",format:"image/png"});
> map.addLayer(na);
>
> map.setCenter(new OpenLayers.LonLat(-90,40),2);
> }
> //]]>
> </script>
> </head>
> <body onload="onLoad();">
> <a style="float:right;" href="" id="permalink">Permalink</a>
> <div style="width:800px;height:500px;" id="map" />
> </body>
> </html>
>
> These are the lines that produce the error in IE:
> var
> scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return
> scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var
> valueT=0,valueL=0;var
> element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
> if(OpenLayers.Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];};OpenLayers.Util.isEquivalentUrl=function(url1,url2,options){options=options||new
> Object();OpenLayers.Util.applyDefaults(options,{ignoreCase:true,ignorePort80:true,ignoreHash:true});urlObj1=OpenLayers.Util.createUrlObject(url1,options);urlObj2=OpenLayers.Util.createUrlObject(url2,options);for(var
> key in
> urlObj1){if(options.test){alert(key+"\n1:"+urlObj1[key]+"\n2:"+urlObj2[key]);}
>
> The following fix works but is it right?
> var
> scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return
> scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var
> valueT=0,valueL=0;var
> element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(typeof(element.offsetParent)=="object")if(element.offsetParent==document.body)
> if(OpenLayers.Element.getStyle(element,'position')=='absolute')break;}while((typeof(element.offsetParent)=="object")&&(element=element.offsetParent)!=null);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];};OpenLayers.Util.isEquivalentUrl=function(url1,url2,options){options=options||new
> Object();OpenLayers.Util.applyDefaults(options,{ignoreCase:true,ignorePort80:true,ignoreHash:true});urlObj1=OpenLayers.Util.createUrlObject(url1,options);urlObj2=OpenLayers.Util.createUrlObject(url2,options);for(var
> key in
> urlObj1){if(options.test){alert(key+"\n1:"+urlObj1[key]+"\n2:"+urlObj2[key]);}
>
>
> Thanks,
> Vincent-Gabriel Vallée
>
>
> ________________________________
> Get news, entertainment and everything you care about at Live.com. Check it
> out!
> _______________________________________________
> PSC mailing list
> PSC at openlayers.org
> http://openlayers.org/mailman/listinfo/psc
>
>
More information about the Dev
mailing list