ie下使用文本编辑器导致input文本框无法聚焦的问题原因
最近公司的一个项目遇到一个如下问题:
描述:测试发现,每当我们在发布活动的页面发布完活动后,页面跳转到我的活动,然后再次回到发布活动页面,发现所有的input文本框都不能聚焦。然后再去看看其他页面(我们使用的单页面,页面没有刷新,改变的是页面内的main_div的内容),所有页面的输入框均无法聚焦。
分析:发布活动页面使用的一个嵌套的iframe文本编辑器,在页面跳转的时候,我们直接重新赋值了外层的div的html内容,达到切换页面的效果,然而在IE里面,存在这样一个bug,“ IE 下在移除父层的 DIV 的时候,也就是 IFrame 外层的 DIV 的时候,IE 并没有将内部的 IFrame 从 DOM 中移除,而下次触发函数创建此 IFrame 的时候,使会产生 DOM 冲突,所以解决方法就是在移除父层的 DIV 的时候,先将内部的 IFrame 也移除,于是问题解决了..”。
解决办法:在改变外层div的html内容时,先将编辑器的iframe移除,设置它的 src="" 即可,然后再remove掉iframe,这样就解决问题了。
悟已往之不谏,知来者之可追;实迷途其未远,觉今是而昨非。
——且行且珍惜