iframe 으로 다른 컨텐츠를 로딩 후 Android 에서 확인해보니
레이아웃이 잘못나오거나 동작을 하지 않는 문제가 발생했다.
이슈 사항은 다음과 같다.
* iframe Element
Android 2.x
- height 속성이 적용되지 않는다.
- 위의 문제로 인해 scroll 을 적용할 수 없다.
해결 방법은??
iframe 내에 들어가는 컨텐츠의 height를 iframe 에 적용하고 싶은 height 로 잡아준 후
내부에서 스크롤을 잡아준다.
outer.html
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div id="divWrapper" style="width:100%; height:500px;"> <div id="divHeader" style="width:100%; height:100px;"></div> <div id="divContent" style="width:100%; height:300px;"> <iframe id="iframeContent" style="width:100%; height:100%;" src="inner.html"></iframe> </div> <div id="divFooter" style="width:100%; height:100px;"></div> </div> </body> </html>
inner.html
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> <script type="text/javascript"> $(document).ready(function() { var iframeWrapper = parent.document.getElementById('divContent'); iframeWrapper = $(iframeWrapper); $('html').css({ 'height' : iframeWrapper.css('height') }); $('body').css({ 'height' : iframeWrapper.css('height') }); }); </script> </head> <body> <div id="innerContent"> Content </div> </body> </html>
PS.
inner.html 에 들어가는 div 또한 scroll 이 되지 않으므로 해당 페이지에서 scroll 처리가 필요하다.
http://1004lucifer.blogspot.kr/2014/06/android-android-2x-div-element-scroll.html
PS.
ID 값을 가지지 않고도 inner.html 페이지에서 자신의 iframe 의 height 값을 가져올 수 있다.
방법은 아래의 링크
http://1004lucifer.blogspot.kr/2014/07/html-iframe-iframe-width-height-id.html
댓글
댓글 쓰기