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

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

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

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

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

×
先申请精华~4 l& K8 ^5 F' U$ r5 b7 m1 ]" @) G: R ; r! v ]+ I& E; t9 k( m看完一定要顶啊~5 e. @! G- {, |+ D4 V + }7 g- Z# S& V$ `' z先说明,这个办法只限于iframe中的子页面也是本地页面(不能引用外网页面)) l' h/ P* ?6 R4 ^ 6 u2 r m! Y+ r, E' g ======方法=====0 k0 E2 a% L& C$ f; Z 第一步 js部分# p$ R* v9 M9 ] E % Z3 G6 y9 n0 \# _ function getSize() {( y2 `/ L7 R2 G: R( P var xScroll, yScroll; , Y, Y n- E) P) [ if (window.innerHeight && window.scrollMaxY) { - y- }4 t2 _% a: j0 g; h z xScroll = document.body.scrollWidth; + G s& N* w; J/ m; G yScroll = window.innerHeight + window.scrollMaxY;. u- a0 ^' x+ h1 S% o- L } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac1 g0 a. }0 }3 I$ S, r w- u xScroll = document.body.scrollWidth; ' W+ V% x C! Z" q7 c% V yScroll = document.body.scrollHeight; : D. V1 e9 C" r- T& S4 S0 Y% i } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari ' r5 }/ w# j7 [5 r0 f4 k xScroll = document.body.offsetWidth; , H4 O5 R9 C5 b; `9 D yScroll = document.body.offsetHeight;8 V- i! Y4 f. P) d$ a6 Z! C" \ }$ ~9 W4 i7 s& A# l$ G ( V& T8 U( t }3 ~+ ^3 n var windowWidth, windowHeight; $ X, \! @. z! U. ` if (self.innerHeight) { // all except Explorer & M* Y5 g7 w4 v4 X: g V" g8 I windowWidth = self.innerWidth;; \; Z9 R- K, w8 E4 V' \ windowHeight = self.innerHeight;4 P) U+ m8 i- r4 t+ ~# W0 {8 b } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode. r& h4 Q# W5 @+ r% ] windowWidth = document.documentElement.clientWidth; ( p) x6 R! a( X7 a windowHeight = document.documentElement.clientHeight;/ r4 ]/ o* O9 z" C7 |9 F4 H3 S } else if (document.body) { // other Explorers( q' ~& ]1 m$ K$ a7 [3 c; D$ Q+ Z windowWidth = document.body.clientWidth;: f/ Y+ H- Y1 o2 ^; j7 h windowHeight = document.body.clientHeight;: E7 j$ Q/ v" L" p2 x- ]4 t } ( L2 Q( A$ s4 ^. p+ D, y( ~+ a ( V6 ?2 ^. A$ l G7 J0 ^! d // for small pages with total height less then height of the viewport \) ]8 V) J, q, R& `$ T& @0 ]7 G if(yScroll < windowHeight){ # G0 p' A) U8 P& P4 r6 R. P pageHeight = windowHeight;' U% ]# R' Y) I) ~& R# \. D/ O y = pageHeight;/ @! ~1 Y- U' n: i' A R7 q) H- f } else { / i( Q$ E) ~5 c: G& O pageHeight = yScroll;. G7 {+ F4 N1 O! H% m y = pageHeight; ; G7 [* L$ q, t/ \2 u+ A }9 v7 u1 c3 j& E& ?( p $ a( {# V: [# z6 N if(xScroll < windowWidth){ / V6 c7 [" O/ c2 U( E$ {# N pageWidth = windowWidth; : S! V9 W, H5 V } else { ) E, k# |* X* X pageWidth = xScroll; k; T& v' s' l9 W* x. }' e+ y% e } % u0 G+ @* \- m h# S0 Y7 E' X: `5 ?) @& m6 U1 Z5 ] arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) - J) X' V& q9 X8 \- F# E return arrayPageSize; 9 P6 a2 T6 J8 D$ i" }} 2 @" G; x( `8 K这段代码用来获取目标页的参数,包括页面高、宽,屏幕高、宽. J# ], g0 h. v : g# J" g5 _3 \+ kfunction autoHeight(pid) { - W6 E: ]. y/ Q) B- u% Q var x = new getSize(); % I2 [! w6 L" E+ z1 ` |4 R9 b parent.document.getElementById(pid).height=x[1];9 _0 |6 F3 M' G% ` } 2 c, H- A: {3 \2 t5 I7 Y这段代码用来实现父页面中iframe的高度自适应 9 H0 J! T) x& h/ r L/ k ! M) Q: ], W0 `$ ], y" a1 u% b\\\\\\\\\\8 n& i7 I, {! B6 |; S " g6 [$ z: x. A5 Y3 A! Z. n$ M 第二步 页面部分/ Z; L$ `* K: E9 `# m. @8 W3 K 9 Q+ u. {+ s" Z( C <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> * ]$ y7 o* W% p5 H这是父页面的iframe,没什么特别的,和普通的iframe一样,不过要设置好id值,以便子页面的参数调用。 # p- I) @8 z& a2 n: _1 I! J' c% _1 N, y$ M <body ></body>- A! E2 K8 A8 q! I/ q 在body中利用onload事件,将自身的高度传给父页面的iframe。& l9 V' B' q# R/ {9 Q- _ # }$ o- z3 _2 J& p\\\\\\\\\\& Y) n. c9 n# S+ O 7 h/ d! H3 Q1 ]* {$ q打完收工~本方法在IE6,FF2,XPsp2下顺利通过,FF无报错~
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2025-5-15 10:01

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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