IE中,多次弹出Pop页面,光标无法落入Pop页面中的Input,导致无法输入

之前用JQuery开发了一个弹出框的插件,可用于Pop页面,里面是用的Iframe。但是最近用IE测试发现,第一次弹出Pop页面可以正常使用,关闭Pop页面,再次打开后,页面中的input文本框无法落入光标,导致没办法输入。苦思许久,百度谷歌了许久,最后终于解决了。

Chrome测试没有问题,IE有,那证明是IE的问题了。果然,是IE的问题。我们知道,关闭Pop页面其实就是从dom中把Pop这个Div移除。但是IE移除了Div,可Div里面的iframe还在Dom树上,当再次弹出Pop页面又会创建iframe,这时会冲突,因此就造成了input无法落入光标的问题,这应该是IE的一个Bug。

解决办法:在关闭Pop的js代码中,手动Remove掉iframe。另外最好把iframe的src指定为空。可以添加类似这样的代码:

其中dl是代表弹出框的那个Div。

        var $dliframe = dl.find("iframe");
        if ($dliframe) { 
            $dliframe.attr("src", "");
            $dliframe.remove();
        }    
原文地址:https://www.cnblogs.com/dreamofei/p/4287318.html