dojo的dialog效果基本上都是模态的,也就是说,在弹出窗口后不能对窗口下的元素进行操作。
现在想做出非模态窗口的效果,在查阅了官方文档后并没找出方法,唯一可以替代使用的是dojox.layout.floatpanel部件。
没有示例和文档的参考,只好再去看源码和调度,最后找出一个可以解决的处理方案。
对于dialog的实现,其实dojo并不是使用了window的modal,而是自己写了一个透明的遮罩层放在了子窗口和父窗口之间,使用深度进行排列,所有对非弹出框区域的操作都被这个遮罩层给拦截了。
解决的方案就是,在完成dialog部件的渲染后,把遮罩层给去除或是隐藏。
实际使用代码
dojo.style(dojo.query(".dijitDialogUnderlayWrapper")[0],"display","none"); //或者 dojo.query(".dijitDialogUnderlayWrapper").style({"display":"none"})
问题解决