window.onload=function(){ var hgt=document.body.clientHeight; this.parent.ifmResize(hgt); } //子页面 function ifmResize(hgt){ var ifm=document.getElementById('ifr'); ifm.height=hgt+"px"; } //父页面
终于搞清楚了是怎么回事了。居然是因为网页开头的写法上:<!-- 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" id="ht"--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html id="ht">如果 用上三行的代码,文档的几个高度,script语句中的几个对象的几个Height值都会乱了的,除了用body.scrollHeight可以。 而用下面两行代码的话,就可以正常了。 又,如果用IE打开的话,所有的Height都可以正常计算出来, 下面是在正常的情况下,几个对象的几个Height值(当然,不同的电脑会有不同的值)。window.document.documentElement.offsetHeight:523, cleintHeight:0, scrollHeight:523 document.documentElement.offsetHeight:523, clientHeight:0, scrollHeight:523 body.clientHeight:519, offsetHeight=523, scrollHeight=308 html.clientHeight:0, offsetHeight=523, scrollHeight=523 document.body.clientHeight:519, offsetHeight:523, scrollHeight:308另外,如果用“ XHTML 1.0 ”的话,<a onclick="exit()" style="cursor:hand">[退出]</a>,这里面的“ style="cursor:hand"”,是无效的,不能变成手掌出来。想问问: 1、<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 和 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 有什么不同? 我现在知道的是:HTML 4.01有很多功能,XHTML 1.0是没有的。特别是那些计算Height和Width的。2、用360浏览器http://localhost和用http://mycomputer来打开同一个网址,为何显示会不一样?谢谢。
终于解决了。 加了一个是否IE浏览器的判断,然后,如果是IE浏览器的话,就用一条式子,不是的话,用另一个式子。很奇怪,要这样解决。居然找不到通用于IE和非IE的语句。var b=true; var bb=(navigator.userAgent.indexOf("MSIE")>-1); var w1=600; function resizeIframe(){if(b){ if (bb) w1=window.document.documentElement.offsetHeight; else{ var s1=window.screen.availHeight; //这个值可能会变,因为手机屏幕会转 // alert("这不是IE浏览器。"); w1=document.body.scrollHeight; if (w1<300) {w1=400;} //用了这个,比300小的,就等于400个像素。 else if (w1>s1) {w1=s1;} } document.getElementById("main").height=w1-45; }b=!b;} resizeIframe(); window.onresize=resizeIframe;
var hgt=document.body.clientHeight;
this.parent.ifmResize(hgt);
} //子页面
function ifmResize(hgt){
var ifm=document.getElementById('ifr');
ifm.height=hgt+"px";
} //父页面
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="ht"--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html id="ht">如果 用上三行的代码,文档的几个高度,script语句中的几个对象的几个Height值都会乱了的,除了用body.scrollHeight可以。
而用下面两行代码的话,就可以正常了。
又,如果用IE打开的话,所有的Height都可以正常计算出来,
下面是在正常的情况下,几个对象的几个Height值(当然,不同的电脑会有不同的值)。window.document.documentElement.offsetHeight:523, cleintHeight:0, scrollHeight:523
document.documentElement.offsetHeight:523, clientHeight:0, scrollHeight:523
body.clientHeight:519, offsetHeight=523, scrollHeight=308
html.clientHeight:0, offsetHeight=523, scrollHeight=523
document.body.clientHeight:519, offsetHeight:523, scrollHeight:308另外,如果用“ XHTML 1.0 ”的话,<a onclick="exit()" style="cursor:hand">[退出]</a>,这里面的“ style="cursor:hand"”,是无效的,不能变成手掌出来。想问问:
1、<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
和
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
有什么不同?
我现在知道的是:HTML 4.01有很多功能,XHTML 1.0是没有的。特别是那些计算Height和Width的。2、用360浏览器http://localhost和用http://mycomputer来打开同一个网址,为何显示会不一样?谢谢。
2 、不知道你的360浏览器什么版本,或者电脑如何配置,我的360没办法用mycomputer开启本地http服务器。
3 、在3#给出的代码不论是在父页面添加iframe的Onload事件还是分开嵌入子页面,在包括IE 和360中显示都没有问题
4 、cursor:pointer 是手形指针的标准写法
加了一个是否IE浏览器的判断,然后,如果是IE浏览器的话,就用一条式子,不是的话,用另一个式子。很奇怪,要这样解决。居然找不到通用于IE和非IE的语句。var b=true;
var bb=(navigator.userAgent.indexOf("MSIE")>-1);
var w1=600;
function resizeIframe(){if(b){
if (bb)
w1=window.document.documentElement.offsetHeight;
else{
var s1=window.screen.availHeight; //这个值可能会变,因为手机屏幕会转
// alert("这不是IE浏览器。");
w1=document.body.scrollHeight;
if (w1<300) {w1=400;} //用了这个,比300小的,就等于400个像素。
else if (w1>s1) {w1=s1;}
}
document.getElementById("main").height=w1-45;
}b=!b;}
resizeIframe();
window.onresize=resizeIframe;