robot.js 1.5 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dijit.robot"]){dojo._hasResource["dijit.robot"]=true;dojo.provide("dijit.robot");dojo.require("dojo.robot");dojo.provide("dijit._base.place");dojo.require("dijit._base.scroll");dojo.require("dijit._base.window");dojo.mixin(doh.robot,{_position:function(n){var d=dojo,p=null,M=Math.max,m=Math.min;d.forEach(doh.robot._getWindowChain(n),function(w){d.withGlobal(w,function(){var p2=d.position(n,false),b=d._getPadBorderExtents(n);if(!p){p=p2;}else{var _1;d.withGlobal(n.contentWindow,function(){_1=dijit.getViewport();});p2.r=p2.x+_1.w;p2.b=p2.y+_1.h;p={x:M(p.x+p2.x,p2.x)+b.l,y:M(p.y+p2.y,p2.y)+b.t,r:m(p.x+p2.x+p.w,p2.r)+b.l,b:m(p.y+p2.y+p.h,p2.b)+b.t};p.w=p.r-p.x;p.h=p.b-p.y;}n=w.frameElement;});});return p;},_scrollIntoView:function(n){var d=dojo,dr=doh.robot,p=null;d.forEach(dr._getWindowChain(n),function(w){d.withGlobal(w,function(){var p2=d.position(n,false),b=d._getPadBorderExtents(n),_2=null;if(!p){p=p2;}else{_2=p;p={x:p.x+p2.x+b.l,y:p.y+p2.y+b.t,w:p.w,h:p.h};}dijit.scrollIntoView(n,p);p2=d.position(n,false);if(!_2){p=p2;}else{p={x:_2.x+p2.x+b.l,y:_2.y+p2.y+b.t,w:p.w,h:p.h};}n=w.frameElement;});});},_getWindowChain:function(n){var cW=dijit.getDocumentWindow(n.ownerDocument);var _3=[cW];var f=cW.frameElement;return (cW==dojo.global||f==null)?_3:_3.concat(doh.robot._getWindowChain(f));}});}