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

被折叠的 条评论
为什么被折叠?



