您的位置:首页 > Web前端 > 其它 > 正文

easyui中使用编辑器在IE下有时无法获取焦点

更多 时间:2015-1-20 类别:Web前端 浏览量:1971

easyui中使用编辑器在IE下有时无法获取焦点

easyui中使用编辑器在IE下有时无法获取焦点

在使用富文本编辑器的时候发现个问题,在编辑器卸载的时候,火狐和chrome都正常,但是在ie浏览器十有八九导致页面元素无法聚焦,文本框没法获得焦点,文字也不能选中,起初以为是被透明的层给遮罩了,于是去看编辑器的代码,一头雾水,调试查看页面元素也无异常,但是select下拉框和按钮还有作用,也排除了遮罩层的可能。

 

一、问题的原因

 IE 下在移除父层的 li 的时候,也就是 IFrame 外层的 li 的时候,IE 并没有将内部的 IFrame 从 DOM 中移除,而下次触发函数创建此 IFrame 的时候,使会产生 DOM 冲突,所以解决方法就是在移除父层的 li 的时候,先将内部的 IFrame 也移除。

 

二、解决方法

使用js的方法"CollectGarbage()",在移除相应元素后执行该方法,强制回收内存

 

三、Easyui中释放Iframe的内存的方法

 

  •  
  • JScript 代码   复制
  • 
    $.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();
                    
                }
            }
        });
    
    		
  •  

    标签:easyui