>  기사  >  웹 프론트엔드  >  js로 구현된 적응력이 뛰어난 실제 iframe(IE, FF, Opera와 호환 가능)_javascript 기술

js로 구현된 적응력이 뛰어난 실제 iframe(IE, FF, Opera와 호환 가능)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:33:08925검색

다음 js를 찾았습니다

코드를 복사하세요 코드는 다음과 같습니다:

function SetCwinHeight(obj )
{
var cwin=obj;
if (document.getElementById)
{
if (cwin && !window.opera)
{
if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight)
cwin.height = cwin.contentDocument.body.offsetHeight 20
else if(cwin.Document && cwin.Document.body.scrollHeight)
cwin.height = cwin.Document .body.scrollHeight 10;
}
}
}

그런 다음...
테스트 프로세스를 시작합니다(호출은 매우 간단합니다. 건너뛰기). 첫 번째)
1 .IE --- 통과했지만 여전히 높이에 약간의 차이가 있고 매우 작으며 스크롤 막대가 여전히 있습니다
2.FF --- 통과, IE와 동일하지만 거기에 있습니다 작은 격차입니다
3.Opera --- 저 JS를 보세요 조건이 통과되면 알 수 있습니다
. 하지만 주류 브라우저는 최소한 이 세 가지 항목을 통과해야 합니다! ! !
그래서 Google
은 document.scrollHeight 또는 offsetHeigth
처리 시 각 브라우저의 특수 현상을 검색한 결과 Opera 브라우저가 iframe 콘텐츠를 처리할 때 contentWindow
를 사용하여 콘텐츠를 처리한다는 사실을 발견했습니다. 높이가 높고 IE와 일치합니다
따라서 다음 js가 있습니다
코드 복사 코드는 다음과 같습니다. 다음:


<script> <br>function SetCwinHeight(obj) <br>var cwin=obj; 🎜>if ( document.getElementById) <br>{ <br>if (cwin && !window.opera) <br>{ <br>if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight) <br>cwin. height = cwin.contentDocument.body.offsetHeight 20; //FF NS <br>else if(cwin.Document && cwin.Document.body.scrollHeight) <br>cwin.height = cwin.Document.body.scrollHeight 10;/ /IE <br>} <br>else <br>{ <br>if(cwin.contentWindow.document && cwin.contentWindow.document.body.scrollHeight) <br>cwin.height = cwin.contentWindow.document.body. scrollHeight;// 오페라 <br>} <br>} <br></script>