js 에서 window, document, parent, contentWindow 등등의 속성 및 접근 on redgoose note

js 에서 window, document, parent, contentWindow 등등의 속성 및 접근

Nest: Development Category: Javascript 2013-06-13

iframe 의 부모태그에 접근하기

html

<div>
  <iframe src="children.html"></iframe>
</div>

javascript

window.frameElement // 얘가 iframe
obj.parentNode // 얘가 부모

window.frameElement.parentNode // 는 div 가 됩니다.

if(!window.frameElement) {
  alert('최상위 프레임');
}

부모에 jQuery 가 로딩되어 있다면 굳이 다시 로딩할거 없이 요렇게...

(function($, f) {
  $(function() { 
    $(f).closest('form').find('[name=image]').val("yourimage"); 
  }); 
})(parent.jQuery, window.frameElement);

js 에서 window, document, parent, contentWindow 등등의 속성 및 접근에 관하여...

var a = []; // function 등에 소속되지 않은 var 는 window 소속, window.a 입니다.
window.window == window // window 에는 window 가 들어있습니다. window.window.window.window...
document == window.document // a 가 그러하듯 window 소속입니다.
alert == window.alert // 함수도 마찬가지.
// iframe 에서 parent 는? 
parent == parent.window // window 객체 입니다. 굳이 뒤에 .window 라고 쓸 필요가 없네요.
// iframe 의 window 는?
$('iframe')[0].contentWindow
// 보통은 document 부터 접근해야 하니 그냥 jQuery 체이닝으로
$('iframe').contents().find('tag') // 하면 됩니다.
//contents() 는 일반적인 상황에서는 >* 를 리턴하고 iframe 에서는 document 를 리턴합니다.

출처