0

我正在尝试使用 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() 没有问题。

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

4

0 回答 0