0

我需要知道 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));
            }
        }

我希望你能帮助我,在此先感谢。

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

4

2 回答 2

0

我已经解决了我的问题,它似乎是“designMode”javascript 属性导致身体不稳定,所以我使用“contentEditable”body 属性而不是“designMode”来使我的 iframe 可编辑并且一切正常!

于 2012-08-06T09:54:29.060 回答
0

iframe 使用起来很痛苦,您几乎无法控制它们,您是否有任何可能想要使用的替代方案。谈到你的问题,我认为你可以使用类似下面的东西,只是伪代码:

function getContentFromIframe(iFrameName)
{

    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;

    //Do whatever you need with the content    

}
于 2012-08-06T07:48:08.897 回答