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

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

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

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

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

×
先申请精华~6 g ^4 C. Y. T% t1 B/ ?0 E0 Z, C2 J: A ) Y" a) k/ x' U( i看完一定要顶啊~$ |6 S( B1 V! ~( R- j) M- H7 k # h% n& M. J) \ C$ a. m9 |' E4 {先说明,这个办法只限于iframe中的子页面也是本地页面(不能引用外网页面) 6 G6 G7 Q/ A& m7 P" `: ]; k7 E( T' {2 |8 ~% }3 Y4 B; F. l( ] ======方法=====1 M1 w8 ^: j: y# s 第一步 js部分9 b, p: K. n- y3 j9 D+ ] ! w0 x' C+ p+ l8 @8 P4 ~9 H8 L function getSize() {$ c a& A' Z0 c5 e; d; i var xScroll, yScroll; ( Z$ E5 G1 X) O$ ^ if (window.innerHeight && window.scrollMaxY) { 6 [% l% j- W3 A) E3 z. b xScroll = document.body.scrollWidth; ; s( x* `. ?# S+ p yScroll = window.innerHeight + window.scrollMaxY; + g W$ c& t, w+ t( R+ q } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac % k7 O+ M% H1 Z5 I1 v6 c xScroll = document.body.scrollWidth; . f0 t/ W/ I" d+ j, e4 o/ Q( U& X yScroll = document.body.scrollHeight;: @. ~: q9 b) \ } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari* P, s. _- [) B& ]3 N' | xScroll = document.body.offsetWidth;' G4 H Q1 i) {1 { yScroll = document.body.offsetHeight;. x7 r' w3 V `3 M. V } 3 J( \/ V5 b- k/ b+ n+ p & ^/ {) ?: }# ^" ^6 F: `' c! X2 S0 ~ var windowWidth, windowHeight; : o# K+ r0 u# G# v3 U# [- C if (self.innerHeight) { // all except Explorer 5 L8 F$ g( h/ h% w- h windowWidth = self.innerWidth; 0 H, W: T2 c F! | windowHeight = self.innerHeight; ' Z/ }& Z" s# L3 R6 G } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode $ E5 G0 S, H. O5 Z windowWidth = document.documentElement.clientWidth;5 W2 g# A- V' [ windowHeight = document.documentElement.clientHeight;7 k- d* i3 j6 M, s4 M } else if (document.body) { // other Explorers $ e$ d& T: v% t windowWidth = document.body.clientWidth;/ j- P g4 h$ I/ W% s windowHeight = document.body.clientHeight; % T( @* Z6 ~( x6 v" ?! c: k } ) _! f$ k1 a" U, Q 7 k% C$ ]2 a; D; F5 x // for small pages with total height less then height of the viewport 4 L: T9 Y8 B. X' f0 s) _ if(yScroll < windowHeight){6 ?; v- F9 x. I+ c# t5 [4 V% J+ S pageHeight = windowHeight;6 z7 ?. G3 `7 d7 `% k' ]) |5 |1 q; Z y = pageHeight;& E' {0 `6 {0 }4 F2 m } else { 1 o% n# o) _1 l' _% x/ W pageHeight = yScroll;$ e, u8 C) ?& r A y = pageHeight; 9 r1 v# N9 h9 G& O }% X! t N9 B N! x9 ^ * D3 _2 L1 @+ l# u; c2 p& b) \ if(xScroll < windowWidth){ 6 i7 s' _4 k& s. i+ ?, ` pageWidth = windowWidth; % Y# E% M1 f/ h. Q" | } else { 5 T; J4 I% O. R pageWidth = xScroll; : d( m I( Y% X3 ~ } / _# N8 \( d8 [7 Q, g5 d* e* t' H; Y- _- w arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) ! g/ }2 v/ y' h" ?% ]1 L return arrayPageSize;* k" s2 G( _, v, P! _ }/ l% @) S8 M F 这段代码用来获取目标页的参数,包括页面高、宽,屏幕高、宽 % v0 Q+ c8 ?* f" V8 p9 ^5 V! O7 q. m! I6 v function autoHeight(pid) {0 x" H( ` q- h1 B2 i3 A# Y var x = new getSize();! V, ^7 i# {( a3 L; s parent.document.getElementById(pid).height=x[1]; 0 a: b% v% W1 V- t6 \} # N! \- a7 k5 v/ v7 ~这段代码用来实现父页面中iframe的高度自适应' e& R, Z7 \& N8 Y ( e: H$ L# t7 G; C2 T6 Y, J& U \\\\\\\\\\, \* M- f9 V7 a. c9 d9 V/ y8 c - c* ]" J& e9 G% z* X2 `9 @* ~ 第二步 页面部分6 p7 Y$ U% f9 E$ H ; A6 n$ b# e- y9 O5 [ E. _ <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> 5 \6 X9 ^; p. m. U9 W+ t9 Q这是父页面的iframe,没什么特别的,和普通的iframe一样,不过要设置好id值,以便子页面的参数调用。- X/ j& q/ y6 r* d/ ~9 A# g # l) w p/ M0 F <body ></body>- q- @$ G8 D; ^5 i 在body中利用onload事件,将自身的高度传给父页面的iframe。3 T$ E& \- J' q * q! U# W) X% r# u4 J5 b4 Q8 g\\\\\\\\\\' h) @# o9 o( T4 q( l$ n# M' X % O. v" T. t' ~ 打完收工~本方法在IE6,FF2,XPsp2下顺利通过,FF无报错~
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2025-2-22 16:44

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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