freezner

jQuery Selector로 iframe 제어하는 방법

jQuery를 이용해 iframe 내에서 부모 document 그리고 부모 document 내에 존재하는 다른 iframe에 접근하는 방법을 우선 정리해보고 이를 응용할 수 있는 예시를 한 번 더 정리해보겠습니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Code Sample</title>
  </head>
  <body>
    <div id="content">Content Sample</div>
    
    <iframe id="frameA" src="[frameA]"></iframe>
    <iframe id="frameB" src="[frameB]"></iframe>
  </body>
</html>

iframe 내에서 부모 document 접근 방법

<script>
  // 부모 도큐멘트에서 #content 엘리먼트를 참조하여 hide() 처리
  var parentDocumentContent = $("#content", parent.document);
  parentDocumentContent.hide();
</script>

iframe 내에서 부모 document의 다른 iframe 접근

<script>
  // 부모 도큐멘트의 #frameB iframe 내 #frameBContent 엘리먼트를 참조하여 hide() 처리
  var frameBContent = $("#frameBContent", parent.frames["frameB"].document);
  frameBContent.hide();
</script>

응용 : iframe 내 document의 height 값을 구해 iframe의 height 값을 세팅

<script>
// This iframe name is "contentFrame"

$(document).ready(function(){
  
  // 현재 document를 불러오는 iframe의 selector를 정의한다.
  var thisFrame = $("#contentFrame", parent.document);
  
  // 현재 document의 height 값을 정의한다.
  var documentHeight = $(document).height();

  // 부모 document에서 iframe을 thisFrame에 정의된 selector로 참조하여 iframe의 height값을 css로 설정한다.
  thisFrame.css("height", documentHeight + "px");
});
</script>

jQuery를 버리고 Vanilla JS로 옮겨타고 싶지만 제 자신이 너무 오랜 시간 jQuery에 익숙해진 듯 합니다.

그래서 다음 포스팅에서는 제가 주로 사용하는 jQuery 문법들을 정리하고 이에 대응하는 Vanilla JS 표현식을 알아보도록 하겠습니다.

Exit mobile version