Ticket #798: iecrash.2.patch
| File iecrash.2.patch, 1.6 kB (added by tschaub, 1 year ago) |
|---|
-
lib/OpenLayers/Util.js
old new 956 956 var valueT = 0, valueL = 0; 957 957 958 958 var element = forElement; 959 do { 960 valueT += element.offsetTop || 0; 961 valueL += element.offsetLeft || 0; 959 var child = forElement; 960 while(element) { 962 961 963 // Safari fix 964 if (element.offsetParent==document.body) 965 if (OpenLayers.Element.getStyle(element,'position')=='absolute') break; 962 if(element == document.body) { 963 if(OpenLayers.Element.getStyle(child, 'position') == 'absolute') { 964 break; 965 } 966 } 967 968 valueT += element.offsetTop || 0; 969 valueL += element.offsetLeft || 0; 966 970 967 } while (element = element.offsetParent); 971 child = element; 972 try { 973 // wrapping this in a try/catch because IE chokes on the offsetParent 974 element = element.offsetParent; 975 } catch(e) { 976 OpenLayers.Console.error( 977 "OpenLayers.Util.pagePosition failed: element with id " + 978 element.id + " may be misplaced." 979 ); 980 break; 981 } 982 } 968 983 969 element = forElement; 970 do { 971 valueT -= element.scrollTop || 0; 972 valueL -= element.scrollLeft || 0; 973 } while (element = element.parentNode); 974 984 for(element=forElement; element; element=element.parentNode) { 985 valueT -= element.scrollTop || 0; 986 valueL -= element.scrollLeft || 0; 987 } 988 975 989 return [valueL, valueT]; 976 990 }; 977 991
