IE 8在replaceChild()上抛出类型不匹配错误

时间:2013-07-25 14:40:53

标签: javascript html dom internet-explorer-8 removechild

我正在尝试使用javascript动态生成iframe,以防止它填充浏览器历史记录。它适用于Firefox,Chrome和IE9,但IE8会在replaceChild()行上引发“类型不匹配”错误。这是我写的函数:

function frame(ref) {

        var iframeHeaderCell = document.getElementById('frame');
        var oldFrame = iframeHeaderCell.childNodes[1];

        //Create new iframe element
        var iframeHeader = document.createElement('IFRAME');
        iframeHeader.src = ref ;
        iframeHeader.frameBorder = 0;

        //Replace iframe with a new one
        iframeHeaderCell.replaceChild(iframeHeader, oldFrame);  

        return false;
    }

相关的HTML:

<a href="#" onclick="return frame('products/embo_balloon.html');" class="product">Embo Balloon</a>

<!-- Dynamically inserted iframe goes inside this div -->
<div id="frame">

    <iframe></iframe>

</div>

我试图将replaceChild()方法拆分为removeChild()和appendChild(),但removeChild()上出现了同样的错误。这让我想到也许我的'oldFrame'变量是函数失败的根本原因,但我不知道如何。我还会注意到appendChild()没有问题。

我见过其他人有类似的问题但不幸的是没有人适用于我的情况。如果需要,我很乐意提供任何其他信息!

0 个答案:

没有答案