2012-08-04 2 views
11

메인 윈도우와 iframe은 모두 동일한 도메인에 있지만, 내가 원하는 것은 해당 iframe 내에서만 js를 사용하여 내용에 맞게 iframe의 크기를 조정하는 것입니다.기본 창에서 도움없이 iframe 크기를 조정할 수 있습니까?

메인 창에서 할당 한 iframe의 ID도 알 수 없습니다. 그리고 jquery 나 다른 프레임 워크를 사용하고 싶지 않습니다.

답변

12

당신은 부모 창에서 iframeid을 모르고 또한이 작업을 수행 할 수 있습니다

window.frameElement.style.width = iframeContentWidth + 'px'; 
window.frameElement.style.height = iframeContentHeight + 'px'; 

MDNframeElement를 참조하십시오.

을 편집 iframe 당신은 다음과 같이 할 수 overflow: hidden 크기를 고정하고있는 컨테이너 요소에 될 일이 그냥 경우

: 당신은 단지 1 IFRAME에서이 가정

function resizeIframe (iframeContentWidth, iframeContentHeight) { 
    var container = window.frameElement.parentElement; 
    if (container != parent.document.body) { 
     container.style.width = iframeContentWidth + 'px'; 
     container.style.height = iframeContentHeight + 'px'; 
    } 
    window.frameElement.style.width = iframeContentWidth + 'px'; 
    window.frameElement.style.height = iframeContentHeight + 'px'; 
    return; 
} 
0

너와 같은 출처 콘텐츠의 경우 yes you can입니다.

은 위의 질문에 게리의 답변을 빌려 :

iframe을에서

, window.parent 부모 문서가 아닌 문서 객체 자체의 전역 객체를 참조합니다. 난 당신이

이 parent.document를 사용하여 iframe이 접근 시도하고이 문제를 해결할 수 있는지 사용 parent.document.getElementById

를해야합니다 생각합니다.

0

을 메인 윈도우, IFRAME의 문서 자바 스크립트에서 다음과 같이 할 수 있습니다 :

function getMySelf() 
{ 
    return (window.parent.document.getElementsByTagName("iframe"))[0]; 
} 

var myself = getMySelf(); 
myself.style.width = whateverWidth; 
myself.style.height = whateverHeight;