解决模态窗下UEditor全屏的显示问题

大兄弟 2018年11月12日0   261

我使用的是ArtDialog,这是一个古老的弹窗插件。

我个人通常解决bug的方法就是首先自己动手调试尝试解决,无果后再通过搜索引擎进行检索问题的解决方案。

所以首先经过自己一些列的控制台调试,使用了万能的z-index属性也无果。

然后根据ArtDialog关键词进行检索后也没有得到对应的解决方案,最后使用“模态窗”这个关键词进行检索得到了相较完美的解决方案:

1. ueditor.all.js 文件下找到以下代码

while (container.tagName != "BODY") {
 ...
}

2. 将花括号的内容替换为

var isModal = false;
//判断该dom是否为modal
var classes = $(container).attr('class');
if (classes !== undefined) {
    classes = classes.split(' ');
    for (var i = 0; i < classes.length; i++) {
        if (classes[i] == "modal") {
            isModal = true;
        }
    }
}
var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position");    
nodeStack.push(position);    
//如果是modal,则不设置position为static
if (!isModal) {
    container.style.position = "static";
}
container = container.parentNode;

ueditor.all.js是一个没有压缩过的文件,如需压缩后的文件,可以使用grunt或者gulp进行重新封装即可。

我个人觉得修改核心代码这种做法并不是保险,如果能有一个配置项就会完美很多了