Javascript 在Iframe元素中添加动态元素,而不是创建

Javascript 在Iframe元素中添加动态元素,而不是创建,javascript,iframe,dynamic,Javascript,Iframe,Dynamic,如果我创建了一个动态的IFRAME元素,并且动态地将元素转换为新的IFRAME,那么我会遇到一个小问题。如果我这样做,它会起作用: var miiframe=document.getElementById("miiframe"); var myElement=content.document.createElement("LABEL"); myElement.innerHTML="blabla"; miiframe.contentDocument.body.appendChild(myEleme

如果我创建了一个动态的IFRAME元素,并且动态地将元素转换为新的IFRAME,那么我会遇到一个小问题。如果我这样做,它会起作用:

var miiframe=document.getElementById("miiframe");
var myElement=content.document.createElement("LABEL");
myElement.innerHTML="blabla";
miiframe.contentDocument.body.appendChild(myElement);
但如果我这样做了,那就行不通了:

var miiframe=content.document.createElement("IFRAME");
miiframe.src="about:blank";
document.body.appendChild(miiframe);
var myElement=content.document.createElement("LABEL");
myElement.innerHTML="blabla";
miiframe.contentDocument.body.appendChild(myElement);
我看到了iframe,但没有看到label元素。 最重要的是如果在我做之前提醒它工作

var miiframe=content.document.createElement("IFRAME");
miiframe.src="about:blank";
document.body.appendChild(miiframe);
var myElement=content.document.createElement("LABEL");
myElement.innerHTML="blabla";
alert("now works!!!");
miiframe.contentDocument.body.appendChild(myElement);
使用DIV元素可以工作,但是我想用IFRAME元素来做

这段代码是针对Firefox的。 谢谢

如果在iframe中放置一个“src”,它会尝试加载该源代码(即使它是一个“about:blank”)。加载完成后,它将覆盖标签。您可以添加侦听器以等待iframe加载:

var miiframe=content.document.createElement("IFRAME");
miiframe.src="about:blank";
miiframe.addEventListener('load', function (e) {
    var myElement=content.document.createElement("LABEL");
    myElement.innerHTML="blabla";
    miiframe.contentDocument.body.appendChild(myElement);
}, false);

document.body.appendChild(miiframe);

我的情况有点不同,我没有指定任何源代码,我只是尝试创建一个HTML编辑器,我制作了如下内容:

function init() {
    var iframe = document.createElement("iframe");
    iframe.setAttributes('id','edit');
    document.body.appendChild(iframe);
    var y = document.getElementById('edit');
    y.contentDocument.designMode = 'On';
}
但这从来都不起作用,奇怪的是,当我在一些ifs中放置一些警报时,例如if(y中的“设计模式”)之类的东西,在几个警报之后,我能够在iframe上写下……:

非常感谢您的帮助,您的解释很清楚,iframe总是尝试加载。。。。它会在。。。所以我改了,现在是100%工作:)


而是在添加后停止加载miiframe.contentWindow.stop();
function init() {
    var iframe = document.createElement("iframe");
    iframe.addEventListener('load', function () {
    iframe.contentDocument.designMode="on";
    }, false);
    document.body.appendChild(iframe);
}