NIM039720 If a page containing iframe has scroll bars, geometry drawn with tool's client action will be shifted according to the page's scroll positio
解决办法
Derek on 7\19\09 - Use the following work around with version 9.3 SP1 and 9.3.1 to override an existing javascript function. Tested using IE6, IE7, IE8 and FF3. Ensure that the browsers cache is cleared before testing the new code. This code is a work around until the issue is fixed in a future release. <script language="javascript" type="text/javascript"> ESRI.ADF.System._makeMouseEventRelativeToElement = function(evt, element, location) { //This method will change offset event coordinates and target to another element var e = evt; if (e.target && element && element !== e.target) { //clone object e = {}; for (var idx in evt) e[idx] = evt[idx]; if (!location) { location = Sys.UI.DomElement.getLocation(element); } if (Sys.Browser.agent === Sys.Browser.InternetExplorer) { if (e.target.parentNode === document.body) { e.target = document.body; } e.offsetX = evt.screenX - window.screenLeft - location.x + document.documentElement.scrollLeft - 2; if (document.parentWindow.frameElement != null && document.parentWindow.frameElement.document != null && document.parentWindow.frameElement.document.documentElement != null) //account for scrolling in parent window when in an iframe e.offsetX += document.parentWindow.frameElement.document.documentElement.scrollLeft; e.offsetY = evt.screenY - window.screenTop - location.y + document.documentElement.scrollTop - 2; if (document.parentWindow.frameElement != null && document.parentWindow.frameElement.document != null && document.parentWindow.frameElement.document.documentElement != null) //account for scrolling in parent window when in an iframe e.offsetY += document.parentWindow.frameElement.document.documentElement.scrollTop; } else { var eventLocation = Sys.UI.DomElement.getLocation(e.target); var diffX = eventLocation.x - location.x; var diffY = eventLocation.y - location.y; e.offsetX += diffX; e.offsetY += diffY; } e.target = element; } return e; }; </script>