Iframe详细说明操作

Iframe details operation?

本文关键字:操作 说明 Iframe      更新时间:2023-09-26

我需要知道iframe何时生成他的内容,因为我需要通过javascript访问他的主体,但有时,我不知道为什么,主体对象不存在。。。我经常玩iframe,我把它插入一个对象,然后恢复它,把它插入另一个对象。当我这样做时,身体对象消失了,我不知道为什么:/我认为iframe对象使用起来有点复杂。。。

这是我代码的一部分:

field("fuse")._elt.onclick = function(oEvent){
            var src=oEvent.srcElement.offsetParent.offsetParent.parentElement;
            var ed1=field(src.previousSibling.id);
            var ed2=field(src.nextSibling.id);
            debugger;
            if(ed1.getClassName() == "HTMLEditorField" && ed2.getClassName() == "HTMLEditorField"){
                var p=ed1.getParentField();
                var pp=p.getParentField();
                var ind=p._index;
                /* On retire le composant qui contient les 2 éditeurs */
 /*Here when i remove p, which contains iframes, my iframe ed1 lost his contentWindow */
                pp.removeChild(p);
                p.removeChild(ed1);
                /* On redéfinie les hauteurs et largeur de l'éditeur après l'avoir inséré à la place des 2 autres éditeurs */
                pp.insertChild(ed1,ind);
 /*And here when i insert it in an other object, ed1 recover his contentWindow and document but the body object of his document isn't created ... */
                ed1.setWidth(p.getUserAttribute("width"));
                ed1.setHeight(p.getUserAttribute("height"));
                currentEditor=ed1;
                /* Suppression de la barre d'espacement dans la liste des barres */
                lSpacerField.remove(field(src.id));
            }
        }

我希望你能帮助我,提前谢谢。

(对不起我的英语水平,我是法国人)

如果框架使用起来很痛苦,你对它们几乎没有控制权,你有其他选择吗。说到你的问题,我认为你可以使用下面这样的东西,只是伪代码:

function getContentFromIframe(iFrameName)
{
    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;
    //Do whatever you need with the content    
}

我已经解决了我的问题,似乎是"designMode"javascript属性导致了body的不稳定,所以我使用了"contentEditable"body属性来使我的iframe可编辑,一切都很好!