zoukankan      html  css  js  c++  java
  • 弹出的iframe 表单无法获取焦点

    昨天被朋友问到这个问题,

    说一个弹窗里面包含一个编辑字段的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而不和内存中的残留冲突了。 

  • 相关阅读:
    类和迭代器
    使用委托调用函数
    自定义类和集合
    带函数的参数返回函数的最大值
    使用程序调试输出窗口
    自定义类
    类和结构
    全局参数
    带参数的函数返回数组之和
    IS运算符
  • 原文地址:https://www.cnblogs.com/trance/p/2721450.html
Copyright © 2011-2022 走看看