easyui中使用编辑器在IE下有时无法获取焦点
easyui中使用编辑器在IE下有时无法获取焦点在使用富文本编辑器的时候发现个问题,在编辑器卸载的时候,火狐和chrome都正常,但是在ie浏览器十有八九导致页面元素无法聚焦,文本框没法获得焦点,文字也不能选中,起初以为是被透明的层给遮罩了,于是去看编辑器的代码,一头雾水,调试查看页面元素也无异常,但是select下拉框和按钮还有作用,也排除了遮罩层的可能。
一、问题的原因
IE 下在移除父层的 li 的时候,也就是 IFrame 外层的 li 的时候,IE 并没有将内部的 IFrame 从 DOM 中移除,而下次触发函数创建此 IFrame 的时候,使会产生 DOM 冲突,所以解决方法就是在移除父层的 li 的时候,先将内部的 IFrame 也移除。
二、解决方法
使用js的方法"CollectGarbage()",在移除相应元素后执行该方法,强制回收内存
三、Easyui中释放Iframe的内存的方法
$.fn.panel.defaults = $.extend({}, $.fn.panel.defaults, {
onBeforeDestroy: function () {
var frame = $('iframe', this);
if ($.browser.msie) {
CollectGarbage();
}
if (frame.length > 0) {
frame[0].contentWindow.document.write('');
frame[0].contentWindow.close();
frame.src = "";
frame.remove();
}
}
});