2012-11-07 2 views
0

버튼을 클릭 할 때 iframe 내용을 새로 고치는 기능이 있습니다.wait intil iframe 내용 포함

function changeContent(){ 
     iframe.newContent(); 
     // wait until content contains string "hey" 
     return true; 
    } 

while 루프를 사용하고 싶습니다. 어떻게 반환 할 때까지 함수를 문자열에 대기시킬 수 있습니까? 이것은 내가 지금은 iframe에 액세스하는 방법입니다 :이 시도

var MyIFrame = document.getElementById("myframe"); 
var MyIFrameDoc = (MyIFrame.contentWindow || MyIFrame.contentDocument); 
if (MyIFrameDoc.document) MyIFrameDoc = MyIFrameDoc.document; 

감사

답변

1

onload 이벤트를 사용하는 것이 좋습니다. JS :

function load() 
{ 
    alert("Frame is loaded"); 
} 

HTML :

<iframe src="frame_a.htm" onload="load()"> 

게다가,이 (그냥 그림입니다) 위와 같이 HTML에서 직접 이벤트 핸들러를 바인딩하지 않는 것이 좋습니다. JS는 항상 하나 개의 스레드에서 실행되는 것처럼 루프가 웹 페이지를 동결하는 동안 iframe.onload 또는 addEventlistener/attachEvent

같은 것을 사용하는 것이 좋습니다

+0

사용자가 클릭 한 후 나는 그것을이로드 처음 감지해야하지만하지 않습니다 버튼 iframe이 다른 페이지로 이동하고 그 두 번째 페이지에 문자열이 있는지 감지해야합니다. 이 이벤트가 발생하면 이벤트가 다시 트리거됩니다. 감사합니다 – Kristian

+0

iframe 콘텐츠가로드 될 때마다 onload 이벤트가 발생합니다. iframe의 'src'를 변경하기 전에 이벤트 핸들러를 추가 할 수 있습니다. 처음으로 iframe에 페이지가로드 된 후에는 처리되지 않습니다. –