[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