您的位置:首页 > 其它

弹出的iframe 表单无法获取焦点

2012-10-12 15:40 423 查看
昨天被朋友问到这个问题,说一个弹窗里面包含一个编辑字段的iframe,在IE下面 第二次弹出的时候,弹窗中的元素便不能获取焦点。

开始怀疑是z-index的原因,修改无效。

后来搜索到这篇文章
http://www.dewen.org/q/2662
明白了原因,也就是关闭弹窗的时候 简单的移除了弹窗,没有对iframe进行清理,这样内存里面相当于还有一份iframe的实例,

这就造成了第二次弹窗 元素无法获取焦点。

解决方法可以参照上面这篇文章,没有亲自验证。

对于关闭按钮存在于弹出的iframe中的,可以在父层窗口准备一个移除iframe的方法,在关闭的时候运行一下,销毁需要关闭的iframe实例。

var clearIframe = function(f){ try{ f.contentWindow.document.write(''); f.contentWindow.close(); f.parentNode.removeChild(frame); }catch(e){} };

var close = function(){ if(typeof top.clearIframe == 'function'){ top.clearIframe(self) } /*...其他要做的...*/ };

这样再弹出的就是新的iframe而不和内存中的残留冲突了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: