博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
layer close 关闭层IE9-浏览器崩溃问题解决
阅读量:7079 次
发布时间:2019-06-28

本文共 2080 字,大约阅读时间需要 6 分钟。

针对ayer弹出层在IE上关闭导致浏览器崩溃的问题:

导致原因:

  查看src源码,layer.close关闭总方法中有这么一行:

layer.close = function(index){        var layero = $('#'+ doms[0] + index), type = layero.attr('type'), closeAnim = 'layer-anim-close';        if(!layero[0]) return;        var WRAP = 'layui-layer-wrap', remove = function(){            if(type === ready.type[1] && layero.attr('conType') === 'object'){                layero.children(':not(.'+ doms[5] +')').remove();                var wrap = layero.find('.'+WRAP);                for(var i = 0; i < 2; i++){                    wrap.unwrap();                }                wrap.css('display', wrap.data('display')).removeClass(WRAP);            } else {                //低版本IE 回收 iframe                if(type === ready.type[2]){                    try {                        var iframe = $('#'+doms[4]+index)[0];                        iframe.contentWindow.document.write('');                        iframe.contentWindow.close();                        layero.find('.'+doms[5])[0].removeChild(iframe);                    } catch(e){}                }                //整个layer.js上下文只有这一个“innHTML”的操作!!!!!嫌啰嗦的直接搜索吧!!!                layero[0].innerHTML = '';                layero.remove();            }            typeof ready.end[index] === 'function' && ready.end[index]();            delete ready.end[index];        };        if(layero.data('isOutAnim')){            layero.addClass(closeAnim);        }        $('#layui-layer-moves, #layui-layer-shade' + index).remove();        layer.ie == 6 && ready.reselect();        ready.rescollbar(index);        if(layero.attr('minLeft')){            ready.minIndex--;            ready.minLeft.push(layero.attr('minLeft'));        }        if((layer.ie && layer.ie < 10) || !layero.data('isOutAnim')){            remove()        } else {            setTimeout(function(){                remove();            }, 200);        }    };

为什么下面一行代码都layero.remove()了,还需要上面的操作,真实情况是IE9-并不支持对属性“innerHTML”进行操作()!!!

解决方案:

  

//layero[0].innerHTML = '';

这具体在干什么,我就不明说了,哈哈!

转载于:https://www.cnblogs.com/Brose/p/layer_close.html

你可能感兴趣的文章
【 如果你和我一样在一栋33层大厦的27层工作,在这栋大厦里发生了火灾,那么你该怎么办? 看看也许会保住你的性命!!!】...
查看>>
关于实训的那点事儿
查看>>
SharePoint 读取选项字段所有Choise
查看>>
富数据控件 LstView(模版、分组)
查看>>
Muti-Button Application --calculator.
查看>>
软件系统的哲学对于吸引追随者的重要性
查看>>
win7究竟比windowsXP或windows2003优秀多少呢?
查看>>
转 jQuery插件Highcharts、flexigrid实践
查看>>
Burning
查看>>
Oracle 支持在具有 DHCP 分配的 IP 地址的系统上进行
查看>>
Tools
查看>>
名词解释CPC、CPM、CPA.......【转载】
查看>>
hive并发调用的运行方式-个人经验篇 - ggjucheng - 博客园
查看>>
Sharepoint 2010 学习资源总结
查看>>
const_iterator思考
查看>>
细节是否真的打败爱情,十年后你还会爱我吗?
查看>>
Windows Phone 8 SDK RC 版推出
查看>>
Database2Sharp代码生成工具使用心得
查看>>
稀疏矩阵的十字链表存储
查看>>
【算法导论第13章】红黑树
查看>>