找回密码
 入住遨海湾
搜索
网站解决方案专享优惠-3折上云
查看: 1113|回复: 0

让iframe自适应高度(支持XHTML,支持FF)

[复制链接]
发表于 2007-10-10 15:00:00 | 显示全部楼层 |阅读模式

登录后查才能浏览下载更多咨询,有问题联系QQ:3283999

您需要 登录 才可以下载或查看,没有账号?入住遨海湾

×
先申请精华~. U- [) ]1 _& x: d' D$ \; _% {0 \ * ^& q# q! {5 B D6 q. K' K 看完一定要顶啊~ / ]8 r4 L& m* X) D3 F, n8 @) T# r9 K+ T 先说明,这个办法只限于iframe中的子页面也是本地页面(不能引用外网页面) 3 [/ f/ T; |6 e, u7 y1 a7 W " e% t) n; r+ H* K' R5 ^) N0 _======方法=====$ \" M1 X) B! V 第一步 js部分 8 {" ?! h. H; ^2 r1 w * \/ j+ I5 e! S r! k3 @7 R. o- Ufunction getSize() { A# d% o: n L/ P! x" K var xScroll, yScroll; + z6 j, r9 [# p! k if (window.innerHeight && window.scrollMaxY) { 2 n( ?, n- q. O' J1 w xScroll = document.body.scrollWidth;( a! e, e E3 m yScroll = window.innerHeight + window.scrollMaxY; ' v4 f: L+ [& X" T5 Y! o4 G( I/ y; J } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac $ o5 T2 j3 n, g2 A( g xScroll = document.body.scrollWidth; 7 X% \3 N/ J+ m7 r yScroll = document.body.scrollHeight;4 s2 L, I ^ p. T1 W2 U } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari 3 E1 b4 M& \2 T: c- [ xScroll = document.body.offsetWidth;1 Y7 z3 v- ?6 j5 I yScroll = document.body.offsetHeight; ) h' K2 E% ?* A }9 q2 q! p$ @$ B8 D) I& S 7 i$ f- J9 m; J- ?: A5 p$ W" z var windowWidth, windowHeight;$ j1 ^) d$ E# V, W if (self.innerHeight) { // all except Explorer * X8 ?) u. P* p: Y; L windowWidth = self.innerWidth;# |# M2 G* @ M4 N) A windowHeight = self.innerHeight;; ^" i1 |1 n/ J } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode" m5 f* v! y- o9 A windowWidth = document.documentElement.clientWidth; 5 f, o8 o/ n/ e6 a windowHeight = document.documentElement.clientHeight;9 m4 K/ e: P' g4 s; n* r) c5 |5 a } else if (document.body) { // other Explorers ) H9 ~, z9 M/ Z- J# I( y windowWidth = document.body.clientWidth;) `9 O$ f7 R6 J8 F$ q" K5 f windowHeight = document.body.clientHeight; % L; w/ B. m8 o/ V/ H( d g } 9 a- l0 m, {/ }: ^ & J8 b& G% k5 Q% a // for small pages with total height less then height of the viewport 8 G! r& F' n3 x8 Q if(yScroll < windowHeight){ 2 Y- C6 N0 _& ]) X1 O5 f' c7 } pageHeight = windowHeight;6 |$ V1 |! ~( v! u5 E6 T' Q y = pageHeight;) u/ V/ q+ X7 _* Y5 T G& f( p } else { ) ^" ~( E0 R: T( E3 G% R pageHeight = yScroll;$ z! u: S( ]3 ?/ t) ]" ^1 g( w y = pageHeight;; \! I( O1 O0 x7 }" }2 [ }; h$ J5 H1 E/ c7 o2 H 4 Z+ }) V) k5 R: e, I& v if(xScroll < windowWidth){ , ^, a% W, k9 {7 t0 X pageWidth = windowWidth;* y" S0 L {, M7 W } else {7 o* ?9 q) m& q pageWidth = xScroll; & s- G2 R6 x+ _6 v: e" C0 _ } 7 y5 w9 N7 Q1 l; F7 G4 [6 b8 R 6 m' H/ @; H1 b5 ~8 S. S arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) ; h; e; o' s( F$ a" B' P return arrayPageSize;6 D' c2 g2 t( F9 A" \' P }/ ^, s7 d* G' r3 O 这段代码用来获取目标页的参数,包括页面高、宽,屏幕高、宽 - Q# Q) M4 Z2 W: p1 @ * H2 j8 [& b! ^8 h7 q/ tfunction autoHeight(pid) { 3 k' }" d' O+ m6 P7 e; A var x = new getSize();1 {' D: S6 P0 k parent.document.getElementById(pid).height=x[1];) G2 f7 V Q& w7 u, M& | } : r/ Q/ r2 t R& _7 m' W这段代码用来实现父页面中iframe的高度自适应 * q+ e# z- a" @5 j2 @) y" }/ Q/ c) x2 ]2 Q% g, S \\\\\\\\\\ . @) C& J/ K# @) V - ?# d- Q5 z7 z. ^' O) Y第二步 页面部分 0 v/ c. o4 }9 J; I6 x" U v* O2 V# Y' K* z <div class="onright" style="width:480px;"><iframe id="infrm" name="infrm" marginwidth="0" marginheight="0" width="100%" src="park.htm" frameborder="0" scrolling="auto"></iframe>7 W% v" g. ]0 e' Z& @0 I 这是父页面的iframe,没什么特别的,和普通的iframe一样,不过要设置好id值,以便子页面的参数调用。 ' m8 w8 Q6 B: w5 S( n" v/ U. ]( x$ T2 R/ U. ^ <body ></body>! o0 r% q( ^+ ^5 @ 在body中利用onload事件,将自身的高度传给父页面的iframe。 ~! N6 \; _" c/ X* T# D6 w) y5 h + M+ f# ^$ t4 @3 y4 R! \" Y8 v\\\\\\\\\\2 X$ w) L% ~0 R" l5 D * y" _4 S4 c- a0 J9 p+ h, }" F 打完收工~本方法在IE6,FF2,XPsp2下顺利通过,FF无报错~
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

网站解决方案专享优惠-3折上云

QQ|手机版|小黑屋|遨海湾超级社区

GMT+8, 2025-1-19 03:02

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表