2012-10-30 3 views
0

iFrame 속성 (실제로는 텍스트 상자 값)을 수정하는 방법을 찾고 있습니다. iFrame은 다른 도메인에 있으므로 액세스 할 수 있습니다. 내가 이해 한 바로는 전체 페이지 (iFrame 포함)가 렌더링 된 후에해야합니다. 나는 그런 일 tryed :프레임이 완전히 렌더링 된 후 javascript를 호출하는 방법은 무엇입니까?

<script type="text/javascript"> 
$(window).load(function() { 
    alert("test"); 
    d = document.getElementById("myframe"); 
    d.contentWindow.document.getElementById("frametxtbox"); 
}); 
</script> 

을하지만 난 항상 다음과 같은 오류가 발생합니다 :

Cannot call method 'getElementById' of undefined

나는 또한 경고가 렌더링되는 iFrame 전에 팝업 것으로 나타났습니다, 그래서 난 내 스크립트 전에 실행 생각 페이지에서 프레임 값에 액세스 할 수 있으므로 오류가 발생합니다. Web 관련 프로그래밍에 대한 지식이 거의 없기 때문에 (백엔드에서 항상 작업 했으므로) 내 질문에 이해가되지 않는다면 나를 용서하십시오.

+0

는'contentWindow'이 문서가 아닙니다

$(window.frames['myframe'].document).ready(function() { alert('moo'); }); 

을 참조하십시오. IIRC 원하는 'contentWindow.document' –

+0

마찬가지로, 여전히 같은 오류를 시도했다. – raz3r

+0

iframe 내에로드되는 문서에 대한 액세스 권한이 있습니까? – Kaf

답변

0

iframe이 다른 도메인을 가리키는 경우 same origin policy이 적용됩니다. 즉, 문서에 액세스하기 전에 위키를 확인하고 정책을 완화해야합니다 (자세한 내용은 링크 확인). 그런 다음 기본 페이지 doc이 아닌 준비 이벤트를 iframe 문서에 바인딩해야합니다. 이 도움이된다면 :

관련 문제