iframe안의 element에 접근하자.

iframe의 이름을 다음과 같이 정의 했다고 하자.

<iframe id="s_content" name="s_frame" src=".....

자바스크립트로 iframe을 가져오는 방법은 다음과 같다.

document.getElementById("s_content");
혹은
window.frames["s_frame"];


여기까지는 모두가 알만하고, js를 공부해본 사람이라면 누구든지 쉽게 접근할수 있다.
하지만 브라우저간에 다른 구현으로 인해, 내부 document를 가져오는 방법이 다르다.

ie, ff계열..      : frame.contentWindow
safari, opera  : frame.contentDocument

매우 뷁스러운 상황이라 할 수 있다.

그래서 코드를 구현할때는 다음과 같이 하도록 한다.

<script type="text/javascript">
function getFrame() {
  var frm = document.getElementById("s_frame");
  if (frm == null) return;

  var fDoc = frm.contentWindow || frm.contentDocument;
  if (fDoc.document) {
    fDoc = fDoc.document;
  }

  //여기서부터 갖고 노는거닷!!

  fDoc.body.style.backgroundColor = "red";
}
</script>

당연히 아시겠지만 getFrame()함수를 실행하게 되면 iframe내부의 배경색깔이 빨간색으로 바뀌게 됩니다. :)

by 백탄왕 | 2008/06/16 16:31 | 셈틀 | 트랙백(1) | 덧글(2)

트랙백 주소 : http://atple.egloos.com/tb/1791319
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from at 2014/03/11 00:31

제목 : garcinia cambogia
line3...more

Commented by 치프 at 2011/09/29 17:32
감사합니다.
혼자 삽질하다 안되서 검색하다가 님 덕분에 해결했습니다.
Commented by 조장완 at 2011/11/10 13:38
한참 찾다가 이거보고 바로해결 !! 감사합니다 ^^ 퍼갈께요~~

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶