在iframe元素中添加动态元素而不是我创建的元素

use*_*172 3 javascript iframe dynamic

如果我创建一个动态IFRAME元素并且我动态地将元素聚合到新的iframe,那么我有一个小问题.它工作如果我这样做:

var miiframe=document.getElementById("miiframe");
var myElement=content.document.createElement("LABEL");
myElement.innerHTML="blabla";
miiframe.contentDocument.body.appendChild(myElement);
Run Code Online (Sandbox Code Playgroud)

但如果我这样做不起作用:

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);
Run Code Online (Sandbox Code Playgroud)

我看到iframe,但我没有看到标签元素.最勇敢的是,如果在appendElement之前我做并警告它的工作!

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);
Run Code Online (Sandbox Code Playgroud)

随着DIV元素的工作,但我想用IFRAME元素做到这一点!

此代码适用于Firefox.谢谢!!

Ret*_*old 9

如果你将" src "添加到iframe中,它会尝试加载此源代码(即使它是" 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);
Run Code Online (Sandbox Code Playgroud)