JavaScript无法删除动态创建的iframe

时间:2016-07-20 13:22:47

标签: javascript dom

我无法在调用函数时删除预先创建的iframe。我设置了可见性:可见所以我可以看到正在发生的事情,并且新创建的iframe在每次调用该函数时彼此相邻堆叠。

BTW,“iframe”确实是动态创建的iframe中的id。所以document.getElementById('iframe')是正确的。

代码:

    if( document.getElementById(iframe) ){
        var e = document.getElementById("iframe");
        e.removeChild(document.getElementById("iframe"));
    }
    var iframe = document.createElement("iframe");
    iframe.setAttribute("id","iframe");
    iframe.setAttribute("class","iframe");
    document.getElementById("output").appendChild(iframe);
    $("#iframe").attr("display","block");
    $("#iframe").attr("src",url);

......我也尝试过:

if( typeof document.getElementById(iframe) !== "undefined" ){
    var e = document.getElementById("iframe");
    e.removeChild(document.getElementById("iframe")); // e is null error here
}

...但这会导致“e为空错误 ......和

if( ! typeof document.getElementById(iframe) == "undefined" ){
    var e = document.getElementById("iframe");
    e.removeChild(document.getElementById("iframe"));
}

...没有错误,但iframe也没有被删除。

1 个答案:

答案 0 :(得分:3)

此:

if( document.getElementById(iframe) ){
    var e = document.getElementById("iframe");
    e.removeChild(document.getElementById("iframe"));
}

应改为:

if( document.getElementById("iframe") ){
    document.getElementById("iframe").remove();
}