前提:
W3C标准:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
全局css:
<style>
html,body{height:100%;width:100%}
iframe{width:100%}
</style>
1.首先控制整个窗口的大小,如果变化,要自适应
var originalWidth = document.documentElement.clientWidth;
var originalHeight = document.documentElement.clientHeight;
window.onresize = function(){
var _originalWidth = document.documentElement.clientWidth;
var _originalHeight = document.documentElement.clientHeight
//if (_originalWidth*_originalHeight!=originalWidth*originalHeight <= originalWidth || _originalHeight <= originalHeight||_originalWidth > originalWidth || _originalHeight > originalHeight){
if(_originalWidth*_originalHeight != originalWidth*originalHeight){
$("#clientframe").height(_originalHeight-73);//73:前面iframe的高度
}
originalWidth = _originalWidth;
originalHeight = _originalHeight;
}
2.控制iframe大小 ,如果窗口变化,要自适应
<tr>
<td width="100%" height="" id="ClientTD" align="top">
<iframe src="<%=request.getContextPath()%>/html/com/menu/blank.html" width="100%" height="100%"style="" scrolling="auto" id ="clientframe" frameborder="0" name="clientframe" οnlοad="expression4Firefox(this);getIframeHeight()"></iframe>
</td>
</tr>
注意:关于一个document.documentElement.clientWidth为0的问题
原来是W3C的标准在作怪啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果在页面中添加这行标记的话 在IE中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在FireFox中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
?
在Opera中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则
IE为:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
子iframe获取父iframe高度调整子iframe高度,或者是父iframe根据子iframe高度调整父iframe高度
parent.window.frames['clientframe'].frameElement.style.height;