js iframe 조작 방법 소개
chrome:iframeElement. contentWindowfirefox: iframeElement.contentWindowie6:iframeElement.contentWindow
글 Iframes,onload,and document.domain 에 서 는"he iframe element object has a property called contentDocument that contains the iframe's document object,so you can use the parentWindow property to retrieve the window object"라 고 말 했다.일부 브 라 우 저 는 iframeElement.contentDocument.parentWindow 를 통 해 iframe 의 window 대상 을 얻 을 수 있다 는 뜻 이다.그러나 테스트 를 통 해 fireforx,chrome 의 element.contentDocument 대상 은 parentWindow 속성 이 없습니다.
(javascript)
function getIframeWindow(element){
return element.contentWindow;
//return element.contentWindow || element.contentDocument.parentWindow;
}
2.iframe 을 얻 은 document 대상 은 도 메 인 접근 제한 이 있 습 니 다.chrome:iframeElement.contentDocument firefox:iframeElement.contentDocumentie:element.contentWindow.document 비고:ie 에는 iframeElement.contentDocument 속성 이 없습니다.
(javascript)
var getIframeDocument = function(element) {
return element.contentDocument || element.contentWindow.document;
};
3.iframe 에서 부모 페이지 를 얻 은 window 대상 은 도 메 인 접근 제한 이 있 습 니 다.부모 페이지:window.parent 최상 위 페이지:window.top 은 모든 브 라 우 저 에 적 용 됩 니 다.
4.iframe 이 부모 페이지 에 있 는 html 탭 을 얻 으 면 도 메 인 접근 제한 이 있 습 니 다.
window.frameElement(형식:HTML Element),모든 브 라 우 저 에 적용
5.iframe 의 onload 이벤트 비 ie 브 라 우 저 는 모두 onload 이 벤트 를 제공 합 니 다.예 를 들 어 아래 코드 는 ie 에서 팝 업 상자 가 없 을 것 입 니 다.
(javascript)
var ifr = document.createElement('iframe');
ifr.src = 'https://www.jb51.net/index.php';
ifr.onload = function() {
alert('loaded');
};
document.body.appendChild(ifr);
그러나 ie 는 onload 사건 을 제공 한 것 같 습 니 다.다음 두 가지 방법 은 모두 onload 를 촉발 합 니 다.방법 1:
<iframe onload="alert('loaded');" src="https://www.jb51.net/index.php"></iframe>
방법 2: //ie 만 이 createElement 에 이러한 매개 변 수 를 전달 하 는 것 을 지원 합 니 다
var ifr = document.createElement('<iframe onload="alert('loaded');" src="https://www.jb51.net/index.php"></iframe>');
document.body.appendChild(ifr);
iframe 요소 가 부모 페이지 에 포함 되 어 있 기 때문에 상기 방법 은 도 메 인 문 제 를 해결 하지 않 습 니 다.실제로 IE 는 onload 이 벤트 를 제공 하지만,attachEvent 를 사용 하여 연결 해 야 합 니 다.
var ifr = document.createElement('iframe');
ifr.src = 'http://b.jb51.net/b.php';
if (ifr.attachEvent) {
ifr.attachEvent('onload', function(){ alert('loaded'); });
} else {
ifr.onload = function() { alert('loaded'); };
}
document.body.appendChild(ifr);
6.frameswindow.frames 는 페이지 의 프레임(iframe,frame 등)을 가 져 올 수 있 습 니 다.주의해 야 할 것 은 window 대상 이지 HTML Element 가 아 닙 니 다.
var ifr1 = document.getElementById('ifr1');
var ifr1win = window.frames[0];
ifr1win.frameElement === ifr1; // true
ifr1win === ifr1; // false
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.