http://www.dynamicdrive.com/dynamicindex8/chromeless.htm  ,Gabriel Suchowolski 公布了它的3.5版本无边框窗口代码。
但是,该版本只能在Win2000  和XP上使用,win 2003 并不支持,且IE6+SP1下只能全屏无边框。

但该技术仍然值得研究,目前来讲,要实现IE的无边框网页,仍然有大量限制。比较可行的是

http://www.cnblogs.com/sgsoft/archive/2004/10/13/51679.aspx

所展示的技术。
下面我们看看Gabriel Suchowolski 的代码:
chromeless_35.js

无边框全屏窗口之二/*
无边框全屏窗口之二    CHROMELESS WINDOWS v.35.1 [ 8.1K ]
无边框全屏窗口之二    Licensed under GNU LGPL (www.gnu.org)
无边框全屏窗口之二
无边框全屏窗口之二    (c) Gabriel Suchowolski,2000 >> www.microbians.com
无边框全屏窗口之二    Thanks to Gustavo Ponce >> www.urbanlove.org (resize addon)
无边框全屏窗口之二        This script featured on Dynamic Drive (http://www.dynamicdrive.com)
无边框全屏窗口之二
*/
无边框全屏窗口之二
无边框全屏窗口之二
function chromeless(u,n,W,H,X,Y,cU,cO,cL,mU,mO,xU,xO,rU,rO,tH,tW,wB,wBs,wBG,wBGs,wNS,fSO,brd,max,min,res,tsz){
无边框全屏窗口之二    
var c=(document.all&&navigator.userAgent.indexOf("Win")!=-1)?1:0
无边框全屏窗口之二    
var v=navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE ")+5,navigator.appVersion.indexOf("MSIE ")+8)
无边框全屏窗口之二    min
=(v>=5.5?min:false);
无边框全屏窗口之二    
var w=window.screen.width; var h=window.screen.height
无边框全屏窗口之二    
var W=W||w; W=(typeof(W)=='string'?Math.ceil(parseInt(W)*w/100):W); W+=(brd*2+2)*c
无边框全屏窗口之二    
var H=H||h; H=(typeof(H)=='string'?Math.ceil(parseInt(H)*h/100):H); H+=(tsz+brd+2)*c
无边框全屏窗口之二    
var X=X||Math.ceil((w-W)/2)
无边框全屏窗口之二    
var Y=Y||Math.ceil((h-H)/2)
无边框全屏窗口之二    
var s=",width="+W+",height="+H
无边框全屏窗口之二
无边框全屏窗口之二    
if(c){
无边框全屏窗口之二        
var cTIT='\n'+
无边框全屏窗口之二        '
<html><head><META HTTP-EQUIV="imagetoolbar" CONTENT="no">\n'+
无边框全屏窗口之二        '
<script>\n'+
无边框全屏窗口之二        '
var IcU=new Image();IcU.src="'+cU+'";var IcO=new Image();IcO.src="'+cO+'";var IcL=new Image();IcL.src="'+cL+'";var IxU=new Image();IxU.src="'+xU+'";var IxO=new Image();IxO.src="'+xO+'";var IrU=new Image();IrU.src="'+rU+'";var IrO=new Image();IrO.src="'+rO+'";var ImU=new Image();ImU.src="'+mU+'";var ImO=new Image();ImO.src="'+mO+'"\n'+
无边框全屏窗口之二        'document.onmousemove
=document.onselectstart=document.ondragstart=document.oncontextmenu=new Function("wMOV();return false");\n'+
无边框全屏窗口之二        'b
=-1\n'+
无边框全屏窗口之二        'wLOA
=function(){if(top.ok&&document.body){'+(min?'bMIN.style.visibility="visible";':'')+'bLOA.style.visibility="hidden";wRSZ()}else setTimeout("wLOA()",500)};wLOA()\n'+
无边框全屏窗口之二        'wRSZ
=function(){var dw=document.body.clientWidth;bCLO.style.pixelLeft=dw-22;bMIN.style.pixelLeft=bLOA.style.pixelLeft=dw-62;bFUL.style.pixelLeft=bRES.style.pixelLeft=dw-42}\n'+
无边框全屏窗口之二        'wMAX
=function(m){top.mod=m;if(m){top.mT(0,0);top.rT('+w+','+h+');bFUL.style.visibility="hidden";bRES.style.visibility="visible"}else{top.mT(top.px,top.py);top.rT(top.sW,top.sH);bFUL.style.visibility="visible";bRES.style.visibility="hidden"}}\n'+
无边框全屏窗口之二        'wDBL
=function(){if(!top.mod)wMAX(1);else wMAX(0)}\n'+
无边框全屏窗口之二        'wMIN
=function(){top.window.moveTo(0,-4000);if(top.opener&&!top.opener.closed){top.opener.window.focus()};top.window.blur()}\n'+
无边框全屏窗口之二        'wMOV
=function(){\n'+
无边框全屏窗口之二        '
if(b==0){top.bCOL("'+wBG+'","'+wB+'");b=-1}\n'+
无边框全屏窗口之二        '
if(b==2&&!top.mod){top.px=event.screenX-ofx-1;top.py=event.screenY-ofy-1;top.mT(top.px,top.py)}\n'+
无边框全屏窗口之二        '
if(b==1){top.bCOL("'+wBGs+'","'+wBs+'");ofx=event.x;ofy=event.y;b=2}\n'+
无边框全屏窗口之二        '}
</script></head>\n'+
无边框全屏窗口之二        '
<body onresize="wRSZ()" bgcolor='+wBG+'>\n'+
无边框全屏窗口之二        '
<div style="position:absolute;left:5px;top:4px;width:2000px">'+tH+'</div>\n'+
无边框全屏窗口之二        '
<img id=bMOV style="position:absolute;left:-50px;top:-50px" '+(max?'ondblclick="wDBL()"':'')+' onmousemove="wMOV()" onmousedown="b=1;wMOV()" onmouseup="b=0;wMOV()" border=0 src="" width=2000 height=2000>\n'+
无边框全屏窗口之二        '
<img id=bFUL style="position:absolute;top:4px;left:'+(W-42)+'px;'+(max?'':'display:none')+'" src="'+xU+'" border=0 onmouseover="this.src=IxO.src" onmouseout="this.src=IxU.src" onmouseup="this.src=IxU.src" onmousedown="this.src=IxU.src" onclick="wMAX(1)">\n'+
无边框全屏窗口之二        '
<img id=bRES style="position:absolute;top:4px;left:'+(W-42)+'px;visibility:hidden" src="'+rU+'" border=0  onmouseover="this.src=IrO.src" onmouseout="this.src=IrU.src" onmouseup="this.src=IrU.src" onmousedown="this.src=IrU.src" onclick="wMAX(0)">\n'+
无边框全屏窗口之二        '
<img id=bCLO style="position:absolute;top:4px;left:'+(W-22)+'px;" src="'+cU+'" border=0  onmouseover="this.src=IcO.src" onmouseout="this.src=IcU.src" onmouseup="this.src=IcU.src" onmousedown="this.src=IcU.src" onclick="top.window.close()">\n'+
无边框全屏窗口之二        '
<img id=bLOA style="position:absolute;top:4px;left:'+(W-62)+'px;" src="'+cL+'" border=0 >\n'+
无边框全屏窗口之二        '
<img id=bMIN style="position:absolute;top:4px;left:'+(W-62)+'px;visibility:hidden" src="'+mU+'" border=0  onmouseover="this.src=ImO.src" onmouseout="this.src=ImU.src" onmouseup="this.src=ImU.src" onmousedown="this.src=ImU.src" onclick="wMIN()">\n'+
无边框全屏窗口之二        '
</body>\n'+
无边框全屏窗口之二        '
</html>'
无边框全屏窗口之二        
无边框全屏窗口之二        cTIT
=cTIT.replace(/\//g,"\\\/").replace(/\"/g,"\\\"").replace(/\n/g,"\\n")
无边框全屏窗口之二

无边框全屏窗口之二
无边框全屏窗口之二        cRES
=function(b,s){
无边框全屏窗口之二            
var tmp='\n'+
无边框全屏窗口之二            '
<html><head><META HTTP-EQUIV="imagetoolbar" CONTENT="no">\n'+
无边框全屏窗口之二            '
<script>\n'+
无边框全屏窗口之二            'document.onmousemove
=document.onselectstart=document.ondragstart=document.oncontextmenu=new Function("wMOV();return false");\n'+
无边框全屏窗口之二            'b
=-1\n'+
无边框全屏窗口之二            'wMOV
=function(){if(!top.mod){\n'+
无边框全屏窗口之二            '
if(b==0){top.sH=top.fH;top.sW=top.fW;b=-1}\n'+
无边框全屏窗口之二            '
if(b==2&&(1=='+b+'||4=='+b+'||5=='+b+')){tmp=event.screenY-oH;if(top.sH+tmp>100){top.fH=top.sH+tmp}}\n'+
无边框全屏窗口之二            '
if(b==2&&(2=='+b+'||4=='+b+')){tmp=event.screenX-oW;if(top.sW-tmp>100){top.fW=top.sW-tmp;top.px=event.screenX-ofx-1}}\n'+
无边框全屏窗口之二            '
if(b==2&&(3=='+b+'||5=='+b+')){tmp=event.screenX-oW;top.fW=top.sW+tmp}\n'+
无边框全屏窗口之二            '
if(b==2){setTimeout("top.rT(top.fW,top.fH);top.mT(top.px,top.py);",10)}\n'+
无边框全屏窗口之二            '
if(b==1){ofx=event.x;oH=event.screenY;oW=event.screenX;b=2}\n'+
无边框全屏窗口之二            '}}
</script></head>\n'+
无边框全屏窗口之二            '
<body bgcolor='+wBG+'>\n'+
无边框全屏窗口之二            '
<img style="cursor:'+s+'-resize" id=bMOV style="position:absolute;left:-50px;top:-50px" onmousemove="wMOV()" onmousedown="b=1;wMOV()" onmouseup="b=0;wMOV()" border=0 src="" width=3000 height=2000>\n'+
无边框全屏窗口之二            '
</body>\n'+
无边框全屏窗口之二            '
</html>'
无边框全屏窗口之二            
return tmp.replace(/\//g,"\\\/").replace(/\"/g,"\\\"").replace(/\n/g,"\\n")
无边框全屏窗口之二
        }
无边框全屏窗口之二
无边框全屏窗口之二        
var cRESd=cRES(1,'s'),cRESl=cRES(2,'w'),cRESr=cRES(3,'e'),cRESbl=cRES(4,'sw'),cRESbr=cRES(5,'se')
无边框全屏窗口之二
无边框全屏窗口之二        
var cFRM='<HTML><HEAD><TITLE>'+tW+'</TITLE>\n'+
无边框全屏窗口之二        '
<script>\n'+
无边框全屏窗口之二        'ok
=0;mod=0;sH=fH='+(H)+';sW=fW='+(W)+';px='+(X)+';py='+(Y)+'\n'+
无边框全屏窗口之二        'bCOL
=function(c1,c2){fT.document.bgColor=n0.document.bgColor=n1.document.bgColor=n2.document.bgColor=n3.document.bgColor=n4.document.bgColor=c1;bL.document.bgColor=bT.document.bgColor=bR.document.bgColor=bB.document.bgColor=c2}\n'+
无边框全屏窗口之二        'mTIT
=function(){if(frames.length>8){fT.document.write("'+cTIT+'");fT.document.close();if ('+res+'){n2.document.write("'+cRESd+'");n2.document.close();n1.document.write("'+cRESr+'");n1.document.close();n0.document.write("'+cRESl+'");n0.document.close();n3.document.write("'+cRESbl+'");n3.document.close();n4.document.write("'+cRESbr+'");n4.document.close()};top.bCOL("'+wBG+'","'+wB+'")}else{setTimeout("mTIT()",20)}}\n'+
无边框全屏窗口之二        'mT
=function(x,y){top.window.moveTo(x,y)}\n'+
无边框全屏窗口之二        'rT
=function(w,h){top.window.resizeTo(w,h)}\n'+
无边框全屏窗口之二        'top.rT(fW,fH);top.mT(px,py)\n'
+
无边框全屏窗口之二        'mTIT()\n'
+
无边框全屏窗口之二        '
</script></HEAD>\n'+
无边框全屏窗口之二        '
<frameset onselectstart="return false" onload="top.ok=1" onfocus="if (top.ok&&fT&&fT.wMAX) fT.wMAX(top.mod)" border=0 framespacing=0 frameborder=0 rows="'+tsz+',100%,'+brd+'">\n'+
无边框全屏窗口之二        '    
<frame name=fT src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '    
<frameset border=0 framespacing=0 frameborder=0 cols="'+brd+',1,100%,1,'+brd+'">\n'+
无边框全屏窗口之二        '        
<frame name=n0 src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '        
<frame name=bL src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '            
<frameset border=0 framespacing=0 frameborder=0 rows="1,100%,1">\n'+
无边框全屏窗口之二        '                
<frame name=bT src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '                
<frame name=main src="'+u+'" '+fSO+'>\n'+
无边框全屏窗口之二        '                
<frame name=bB src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '            
</frameset>\n'+
无边框全屏窗口之二        '        
<frame name=bR src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '        
<frame name=n1 src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '    
</frameset>\n'+
无边框全屏窗口之二        '    
<frameset border=0 framespacing=0 frameborder=0 cols="'+brd+',100%,'+brd+'">\n'+
无边框全屏窗口之二        '        
<frame name=n3 src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '        
<frame name=n2 src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '        
<frame name=n4 src="about:blank" scrolling=no noresize>\n'+
无边框全屏窗口之二        '    
</frameset>\n'+
无边框全屏窗口之二        '
</frameset>\n'+
无边框全屏窗口之二        '
</HTML>'
无边框全屏窗口之二
无边框全屏窗口之二        
var CWIN=window.open("",n,"fullscreen=1"+s)
无边框全屏窗口之二        CWIN.moveTo(
5000,0)
无边框全屏窗口之二        CWIN.ft
=true
无边框全屏窗口之二        CWIN.document.write(cFRM)
无边框全屏窗口之二        CWIN.document.close()
无边框全屏窗口之二    } 
else {
无边框全屏窗口之二        
var CWIN=window.open(u,n,wNS+s,true)
无边框全屏窗口之二        CWIN.moveTo(X,Y)
无边框全屏窗口之二    }
无边框全屏窗口之二    CWIN.focus()
无边框全屏窗口之二    CWIN.setURL
=function(u) { if (this && !this.closed) { if (this.frames.main) this.frames.main.location.href=u; else this.location.href=u } }
无边框全屏窗口之二    CWIN.closeIT
=function() { if (this && !this.closed) this.close() }
无边框全屏窗口之二    
return CWIN
无边框全屏窗口之二}                                                                               
无边框全屏窗口之二                                                                               
无边框全屏窗口之二
无边框全屏窗口之二

应用的网页:

无边框全屏窗口之二<html>
无边框全屏窗口之二
无边框全屏窗口之二
<head>
无边框全屏窗口之二
无边框全屏窗口之二
<script language="javascript" type="text/javascript" src="chromeless_35.js"></script>

在IE 6 +SP1下,他只能支持全屏无边框。希望下一个版本能够采用新的技术,实现任何情况下无边框。

相关文章: