dojo作为功能强大的js框架,提供了很多web页面小部件,包括树形、表格、对话框等。其中对话框作为常用的页面元素,很大程度上简化了开发人员的操作。但是如果拖动对话框到浏览器边缘,会发生界面宽高变化显示异常的问题,所以需要限制对话框不能被拖动出屏幕。通过阅读dojo的api找到了拖拽方法并进行修改,代码如下:
dialog._moveable.onMoving = function(mover,leftTop){ var clientH = window.document.body.clientHeight; var clientW = window.document.body.clientWidth; leftTop.t = Math.max(0,Math.min(leftTop.t,clientH - mover.node.clientHeight - 2)); leftTop.l = Math.max(0,Math.min(leftTop.l,clientW - mover.node.clientWidth - 2)); }
其中dialog为dijit.Dialog类的实例。