Js 동적 으로 iframe 하위 페이지 의 높이 정 리 를 가 져 옵 니 다.
4599 단어 iframe
제품 의 댓 글 목록 은 iframe 을 인용 하여 높이 가 고정 되 지 않 아 이 총 결 을 야기 합 니 다.
방법 1: 부모 페이지 에서 하위 페이지 의 높이 를 가 져 와 요소 에 높이 를 설정 합 니 다.
이 방법 은 부모 페이지 에 사 용 됩 니 다. 하위 페이지 의 높이 를 가 져 와 iframe 에 높이 를 설정 합 니 다.
몇 가지 호환성 문제 가 언급 되 었 다.
IE 는 attachEvent | 3C 를 onload 로 하위 페이지 가 불 러 올 지 여 부 를 판단 합 니 다.
IE 는 contentWindow | 3C 는 contentDocument 으로 하위 페이지 를 가 져 옵 니 다.
IE 는 document. documentElement. scrollHeight (호 환 ie6 ie7) | 3C 는 body. scrollHeight 로 페이지 높이 를 가 져 옵 니 다.
function setIframeHeight(id){
try{
var iframe = document.getElementById(id);
if(iframe.attachEvent){
iframe.attachEvent("onload", function(){
iframe.height = iframe.contentWindow.document.documentElement.scrollHeight;
});
return;
}else{
iframe.onload = function(){
iframe.height = iframe.contentDocument.body.scrollHeight;
};
return;
}
}catch(e){
throw new Error('setIframeHeight Error');
}
}
방법 2: 하위 페이지 는 부모 페이지 요소 에 높이 를 설정 합 니 다.
이 방법 은 하위 페이지 에 사 용 됩 니 다. 하위 페이지 의 높이 를 가 져 와 부모 레벨 iframe 에 높이 를 설정 합 니 다.
하위 페이지 는 parent 를 통 해 부모 급 iframe 을 가 져 와 iframe 에 높이 를 설정 하고 같은 방법 1 을 호 환 합 니 다.
단점 은 부모 페이지 를 닦 을 때 iframe 에 캐 시가 있어 서 캐 시 를 치 워 야 효력 이 발생 합 니 다.
function setParentIframeHeight(id){
try{
var parentIframe = parent.document.getElementById(id);
if(window.attachEvent){
window.attachEvent("onload", function(){
parentIframe.height = document.documentElement.scrollHeight;
});
return;
}else{
window.onload = function(){
parentIframe.height = document.body.scrollHeight;
};
return;
}
}catch(e){
throw new Error('setParentIframeHeight Error');
}
}
주의해 야 할 크로스 필드 작업
두 페이지 에 한 가지 상황 이 있 으 면 두 개의 도 메 인 이름:
aaa.xxx.combbb.xxx.com
두 페이지 를 모두 설정 해 야 합 니 다:
document.domain ="xgo.com.cn";
이렇게 하면 이 두 페이지 는 서로 조작 할 수 있다.같은 기초 도 메 인 이름 사이 의 '크로스 도 메 인' 을 실현 한 것 이다.
document. domain 을 이용 하여 도 메 인 을 뛰 어 넘 습 니 다: 전제조건: 이 두 도 메 인 은 같은 기본 도 메 인 에 속 해 야 합 니 다!또한 사용 하 는 프로 토 콜, 포트 가 일치 해 야 합 니 다. 그렇지 않 으 면 document. domain 을 이용 하여 도 메 인 자 바스 크 립 트 를 사용 할 수 없습니다. 안전성 을 고려 하여 두 개 이상 의 도 메 인 페이지 가 서로 조작 하 는 것 을 금지 합 니 다.같은 도 메 인 페이지 는 서로 조작 할 때 아무런 문제 가 없 을 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
puppeteer로 iframe의 요소를 조작합니다.iframe내에 버튼을 준비해, 그 버튼을 누르면 버튼의 색이 바뀌는 만큼의 페이지를 만듭니다. app/index.html app/iframe.html puppeteer의 코드를 작성합니다. app/script.js...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.