2010-04-21 4 views
2

동적 IFRAME 요소를 만들고 새 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 요소가 표시되지 않습니다. 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 용입니다. 감사합니다. 당신은 iframe에 "SRC"를 넣으면

+0

을하고있다 지금은 그래서 그것을 변경 ... 그 전에 다른 명령을 덮어 씁니다 ....로드하려고 miiframe.contentWindow.stop(); – Marwan

답변

7

, 그것은 (그것이 "빈에 대한"인 경우에도)이 소스를로드하려고합니다. 로드가 완료되면 레이블을 덮어 씁니다. 당신은 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); 
+0

정말 고마워요! – user322172

+0

당신을 진심으로 환영합니다. –

+0

'content.document'가 나에게 적합하지 않았습니다 .... – LamonteCristo

2

내 경우는 조금 달랐다, 난 그냥 HTML 편집기를 만들려고 한 모든 소스를 지정 didnt는,이 같은 일을했다 :

function init() { 
    var iframe = document.createElement("iframe"); 
    iframe.setAttributes('id','edit'); 
    document.body.appendChild(iframe); 
    var y = document.getElementById('edit'); 
    y.contentDocument.designMode = 'On'; 
} 

그러나 그 일은 결코 일어나지 않습니다. 궁금한 점은 예를 들어 if ('designMode'가 y 인 경우)와 같은 것들에 몇 가지 경고를 넣으면 몇 가지 경고가 표시되면서 iframe .... : S

대단히 감사합니다. 설명은 다음과 같습니다. 분명, iframe을 항상 오히려이 답변 그것이 로드를 중지 추가 한 후 100 % :

function init() { 
    var iframe = document.createElement("iframe"); 
    iframe.addEventListener('load', function() { 
    iframe.contentDocument.designMode="on"; 
    }, false); 
    document.body.appendChild(iframe); 
} 
관련 문제