parent.document.getElementById(“...”)为null或不是IE7中的对象

时间:2011-10-20 16:56:41

标签: javascript iframe internet-explorer-7 null parent-child

我做了一些研究,但作为一个JavaScript新手,我似乎无法为我的具体案例工作:

我在页面中有一个iframe,在iframe的文档中,我有以下代码:

function fun(){
var slideTitle = api.getField('title');
    parent.document.getElementById("slidecaptionOoH").innerHTML = slideTitle;

在父文件中,我有:     <h4 id="slidecaptionOoH"></h4>

我已尝试在标记之间添加注释,但我仍然在IE7中收到错误。页面显示正常,但显然我不希望别人看到错误。


嗯,我想我已经把问题缩小了一点。我认为这可能与iframe文档在父完成加载之前执行的函数有关。我在父级中使用了treesaver.js框架,这涉及到繁重的DOM操作。当我关闭treeaver时,我不再收到错误。

所以我想我现在的问题是,如何延迟功能直到父完成加载?或者延迟加载iframe文档?

1 个答案:

答案 0 :(得分:3)

您可以继续汇集父级,直到它将相应的子级加载到:

function fun(){
    var slideTitle = api.getField('title');
    var el = parent.document.getElementById("slidecaptionOoH");
    if (el){
        el.innerHTML = slideTitle;
    } else{
        setTimeout(fun, 50);
    }
    el = null;
}

但这只是一个(污垢)工作。