parent.document.getElementById("…")在IE7中为空或不是对象

parent.document.getElementById("...") is null or not an object in IE7

本文关键字:quot 对象 getElementById document parent IE7      更新时间:2023-09-26

我做了一些研究,但作为一个JavaScript新手,我似乎不能得到任何工作为我的具体情况:

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

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

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

我试过在标签之间放一个注释,但我仍然在IE7中得到错误。页面显示良好,但显然我不想让人们看到错误。


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

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

你可以一直池化父节点,直到它加载了相应的子节点:

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

但这只是一个(肮脏的)工作。