1. iframe의 창 객체 얻기
도메인 간 접근 제한이 있습니다.
크롬: iframeElement.contentWindow
firefox: iframeElement.contentWindow
ie6: iframeElement.contentWindow
Iframes, onload 및 document.domain 기사에는 "iframe 요소 개체에는 iframe의 문서 개체가 포함된 contentDocument라는 속성이 있으므로 parentWindow 속성을 사용하여 창 개체를 검색할 수 있습니다."라고 나와 있습니다. iframe의 창 개체는 iframeElement.contentDocument.parentWindow를 통해 얻을 수 있습니다. 그러나 테스트 후 Firefox 및 Chrome의 element.contentDocument 개체에는 parentWindow 속성이 없습니다.
(javascript)
function getIframeWindow( element){
return element.contentWindow;
//return element.contentWindow || element.contentDocument.parentWindow;
2. iframe의 문서 객체 얻기
도메인 간 접근 제한이 있습니다.
chrome: iframeElement.contentDocument
firefox: iframeElement.contentDocument
ie: element.contentWindow.document
참고: 즉, iframeElement.contentDocument 속성이 없습니다.
(javascript)
var getIframeDocument = function(element ) {
return element.contentDocument ||
};
3. iframe
의 상위 페이지에서 얻은 창 개체에는 도메인 간 액세스 제한이 있습니다.
상위 페이지: window.parent
상위 페이지: window.top모든 브라우저에 적용
4. 상위 페이지에서 iframe의 html 태그를 얻습니다.
도메인 간 접근 제한이 있습니다.
window.frameElement(유형: HTMLElement), 모든 브라우저에서 작동
5. iframe 온로드 이벤트
IE가 아닌 모든 브라우저는 온로드 이벤트를 제공합니다. 예를 들어 다음 코드에는 IE에 팝업 상자가 없습니다.
(javascript)
코드 복사
코드는 다음과 같습니다.var ifr = document.createElement('iframe'); ifr.src = 'http://www.jb51.net/index.php'
ifr.onload = function() {
Alert('loaded ');
};
document.body.appendChild(ifr);
그러나 IE는 onload 이벤트를 제공하는 것으로 보입니다.
방법 1:
코드 복사
방법 2:
//IE에서만 createElement에 대한 매개변수 전달을 지원합니다.
코드 복사
코드는 다음과 같습니다: var ifr = document.createElement(''); document.body.appendChild(ifr);
iframe 요소가 상위 페이지에 포함되어 있으므로 교차가 없습니다. 위 방법의 도메인 문제.
실제로 IE는 onload 이벤트를 제공하지만, attachmentEvent를 사용하여 바인딩해야 합니다.
코드 복사
코드는 다음과 같습니다. var ifr = document.createElement('iframe '); ifr.src = 'http://b.jb51.net/b.php';
if (ifr.attachEvent) {
ifr.attachEvent('onload', function() { 경고( '로드됨'); });
} else {
ifr.onload = function() { 경고('로드됨') }
document.body.appendChild( ifr)
6. 프레임
window.frames는 페이지의 프레임(iframe, 프레임 등)을 가져올 수 있습니다. HTMLElement가 아니라 창 개체라는 점에 유의해야 합니다.
var ifr1 = document.getElementById('ifr1 '); var ifr1win = window.frames[0];
ifr1win.frameElement === ifr1; // true
ifr1win === ifr1; >