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,但我看不到标签元素。 最好的是,如果我在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);
使用DIV元素,但我想用IFRAME元素!!!
此代码适用于Firefox。 谢谢!
答案 0 :(得分:8)
如果您将“ 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);
答案 1 :(得分:2)
我的情况有点不同,我没有指定任何来源我只是想创建一个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中的'designMode')和类似的东西,在几次警报后我能够在iframe上写。 ......:S
非常感谢你的帮助,你的解释很清楚,iframe总是试图加载......它会覆盖之前的任何其他指令......所以我改了它,现在正在100%工作:)
function init() {
var iframe = document.createElement("iframe");
iframe.addEventListener('load', function () {
iframe.contentDocument.designMode="on";
}, false);
document.body.appendChild(iframe);
}