I used to use a great Chromeless JS app (BYKLEIN CHROMELESS WINDOW OBJECT 2.0) that allowed my personal website to be contained within a Zero Border window - customizable in length & width, and did NOT include any form of standard Windows Button functionality....
The script since IE 6 renders into a complete nightmare...
CHROMELESS JS:
==========================
=====
//////////////////////////
//////////
//////////
//////////
////////
// //
// BYKLEIN CHROMELESS WINDOW OBJECT 2.0 //
// FOR MICROSOFT IEXPLORER 5.5 & UP //
// //
// (c) Copyright 2003. Mariano Klein ||
www.byklein.com //
// Distributed under the terms of the GNU GPL //
// //
// Thanks to Gabriel Suchowolski ||
www.microbians.com //
//////////////////////////
//////////
//////////
//////////
////////
ChromelessWindow = function ()
{
var a = ChromelessWindow.arguments
;
//////////////////////////
//////////
//////////
//////////
//////////
//PRIVATE PROPERTIES
var URL = a[0];
var title = a[1];
var titlebarImage = a[2];
var titlebarHeight = a[3];
var titleFont = a[4];
var titleSize = a[5];
var titleColor = a[6];
var scrollbars = a[7];
var w = a[8]+(a[14]*2);
var h = a[9]+a[14]+a[3];
var centered = a[10];
var xPos = a[11];
var yPos = a[12];
var borderColor = a[13];
var borderSize = a[14];
var minimizeButton = a[15];
var closeButton = a[16];
this.author = "Mariano Klein";
this.version = "ByKlein Chromeless Windows 2.0";
var win = (navigator.appVersion.inde
xOf("Windo
ws"))?true
:false;
var ie= (navigator.appName == "Microsoft Internet Explorer")?true:false;
var v = navigator.appVersion;
var v55 = v.indexOf("MSIE 5.5")?true:false;
var v60 = v.indexOf("MSIE 6.0")?true:false;
var chromelessCompatible = null;
var titlebarContent = null;
var chromelessWW = null;
//////////////////////////
//////////
//////////
//////////
//////////
//PUBLIC METHODS
openChromeless = function(){if(chromelessWW
==null || chromelessWW.closed){openP
arent();se
tChrome();
moveChrome
less();set
ParentSour
ce();}else
{chromeles
sWW.execSc
ript("show
Chromeless
()");}}
closeChromeless = function(){if(chromelessWW
&& !chromelessWW.closed)chrom
elessWW.cl
ose();chro
melessWW=n
ull}
minimizeChromeless = function(){if(chromelessWW
&& !chromelessWW.closed)chrom
elessWW.ex
ecScript("
minimizeCh
romeless()
")}
setURL = function(){URL = arguments[0];if(chromeless
WW && !chromelessWW.closed){chro
melessWW.e
xecScript(
"b.all.can
vas.URL='"
+URL+"'");
chromeless
WW.execScr
ipt("showC
hromeless(
)");}}
moveChromeless= function()
{
if (arguments.length == 0)
{
if (centered)
{
var tempX = w;
var tempY = h;
xPos = (screen.availWidth/2)-(tem
pX/2);
yPos = (screen.availHeight/2)-(te
mpY/2);
}
}
else if(arguments[0]=="center")
{
var tempX = w;
var tempY = h;
xPos = (screen.availWidth/2)-(tem
pX/2);
yPos = (screen.availHeight/2)-(te
mpY/2);
}
else
{
xPos = arguments[0];
yPos = arguments[1];
}
if((chromelessWW)&&(argume
nts.length
!= 0))
{
if(chromelessCompatible)
{
chromelessWW.execScript('v
ar cx='+xPos+';');
chromelessWW.execScript('v
ar cy='+yPos+';');
chromelessWW.execScript("s
howChromel
ess()");
chromelessWW.execScript("f
ocus()");
}
else
{
chromelessWW.moveTo(xPos,y
Pos);
}
}
}
resizeChromeless = function()
{
w = arguments[0];
h = arguments[1];
cH = (h-titlebarHeight)-borderS
ize;
cW = w -(borderSize*2);
if(chromelessWW)
{
chromelessWW.execScript('v
ar cw='+w+';');
chromelessWW.execScript('v
ar ch='+h+';');
chromelessWW.execScript("b
.all.canva
s.style.wi
dth='"+cW+
"'");
chromelessWW.execScript("b
.all.canva
s.style.he
ight='"+cH
+"'");
chromelessWW.execScript("b
.all.close
Button.sty
le.right='
"+borderSi
ze+"'");
chromelessWW.execScript("b
.all.minim
izeButton.
style.righ
t='"+(bord
erSize+20)
+"'");
chromelessWW.execScript("s
howChromel
ess();focu
s()");
}
}
//////////////////////////
//////////
//////////
//////////
//////////
//PRIVATE METHODS
openParent = function()
{
chromelessCompatible = win && ie && (v55 || v60);
var sc = (scrollbars)?"yes":"no";
if (chromelessCompatible)
{
chromelessWW = window.open("about:blank",
"","top=50
00,left=50
00,width=1
00,height=
100,scroll
bars="+sc)
;
}
else
{
chromelessWW = window.open(URL, "chromelessWindow","top="+
yPos+",lef
t="+xPos+"
,width="+w
+",height=
"+(h-20)+"
,scrollbar
s="+sc+",r
esizable=0
");
chromelessWW.document.titl
e = title;
}
}
setChrome = function()
{
var cH = (h-titlebarHeight)-borderS
ize;
var cW = w -(borderSize*2);
this.c = "<object style='position:absolute;z
-index:2;t
op:"+title
barHeight+
"px;left:"
+borderSiz
e+"px;widt
h:"+cW+"px
;height:"+
cH+"px;' data='"+URL+"' id='canvas'></object>";
if((titlebarImage==undefin
ed)||(titl
ebarImage=
=null)||(t
itlebarIma
ge==""))
{
titlebarContent="";
tb = false;
}
else
{
titlebarContent="<img id='menu' unselectable='on' src='"+titlebarImage+"' style='position:absolute; top:0px; left:0px;z-index:2'>";
tb = true;
}
menu = "\<div id='Title' unselectable='on' style='font-family:Arial;f
ont-size:1
1px;font-w
eight:bold
;position:
absolute;t
op:5px;lef
t:"+border
Size+"px;w
idth:70%;h
eight:15px
;cursor:de
fault;font
-family:"+
titleFont+
";font-siz
e:"+titleS
ize+";colo
r:"+titleC
olor+";z-i
ndex:3'>"+
title+"</d
iv>\
<img id='closeButton' unselectable='on' src='"+closeButton+"' width='15' height='15' style='position:absolute; top:5px; right:"+(borderSize)+"px;z
-index:3'>
\
"+titlebarContent+"\<img id='minimizeButton' unselectable='on' src='"+minimizeButton+"' width='15' height='15' style='position:absolute; top:5px; right:"+(borderSize+20)+"p
x;z-index:
3'>\
<div id='fondo' unselectable='on' style='position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:"+borderC
olor+";z-i
ndex:1'></
div>";
}
setParentSource = function()
{
if(chromelessWW)
{
chromelessWW.document.open
();
parentSource = '\
<html>\n\
<head>\n\
<META HTTP-EQUIV="imagetoolbar" CONTENT="no">\n\
<script>\n\
var idsi = setInterval(objControl,50)
;\n\
function objControl(){objContent = b.all("canvas").object;if(
objContent
!=null){se
tUpContent
();}};\n\
</script>\n\
</head>\n\
<body>\n\
<script>\n\
tempOpener = opener;\n\
opener = self;\n\
var c=window.createPopup();\n\
var b=c.document.body;\n\
var ox=oy=ix=iy=0;\n\
var allContent =\"<html><head></head><bod
y>'+menu+c
+'</body><
/html>\";\
n\
b.innerHTML=allContent;\n\
var cx='+xPos+';\n\
var cy='+yPos+';\n\
var cw='+w+';\n\
var ch='+h+';\n\
window.showChromeless = function(){\n\
c.show(cx,cy,cw,ch)}\n\
var mm=false;\n\
var cmove=b.all("fondo");\n\
var cmove2=(b.all("menu"))?b.a
ll("menu")
:"";\n\
var ctitle=b.all("Title");\n\
ctitle.style.visibility=('
+tb+')?"hi
dden":"vis
ible";\n\
var cclose=b.all("closeButton"
);\n\
var cminimize=b.all("minimizeB
utton");\n
\
self.resizeChromeless = function(){w = arguments[0];h = arguments[1];cH = (h-'+titlebarHeight+')-'+b
orderSize+
';cW = w -('+borderSize+'*2);cw=w;c
h=h;b.all.
canvas.sty
le.width=c
W;b.all.ca
nvas.style
.height=cH
;b.all.clo
seButton.s
tyle.right
='+borderS
ize+';b.al
l.minimize
Button.sty
le.right='
+(borderSi
ze+20)+';s
howChromel
ess();focu
s()}\n\
self.moveChromeless = function(){if(arguments[0]
=="center"
){var tempX = '+w+';var tempY = '+h+';xPos = (screen.availWidth/2)-(tem
pX/2);yPos
= (screen.availHeight/2)-(te
mpY/2);}el
se{xPos = arguments[0];yPos = arguments[1];}cx=xPos;cy=y
Pos;showCh
romeless()
;focus()};
\n\
self.setURL = function(){b.all.canvas.UR
L=argument
s[0];showC
hromeless(
)};\n\
self.closeChromeless = function(){opener=self;sel
f.close()}
;\n\
self.dragChromeless = function(){m = (arguments[0])?1:0};\n\
function setUpContent(){\n\
objContent.parentWindow.re
sizeChrome
less = self.resizeChromeless;\n\
objContent.parentWindow.mo
veChromele
ss = self.moveChromeless;\n\
objContent.parentWindow.se
tURL = self.setURL;\n\
objContent.parentWindow.cl
oseChromel
ess = self.closeChromeless;\n\
objContent.parentWindow.dr
agChromele
ss = self.dragChromeless;\n\
};\n\
cclose.onclick=function(){
opener=sel
f;self.clo
se()};\n\
cminimize.onclick=function
(){if(temp
Opener&&!t
empOpener.
closed){te
mpOpener.w
indow.focu
s()}else{o
pener.blur
();blur()}
};\n\
var m=ox=oy=ix=iy=0;\n\
ctitle.onmousedown=cmove.o
nmousedown
=cmove2.on
mousedown=
function()
{m=1};\n\
ctitle.onmouseup=cmove.onm
ouseup=cmo
ve2.onmous
eup=functi
on(){m=0};
\n\
document.body.onclick=func
tion(){if (m){ focus();cx=ix+event.screen
X-ox;cy=iy
+event.scr
eenY-oy;c.
show(cx,cy
,cw,ch) }else {ix=cx; iy=cy; ox=event.screenX; oy=event.screenY } };\n\
setInterval("document.body
.click()",
20);\n\
onfocus=function(){showChr
omeless();
focus()}\n
\
</script>\n\
</body>\n\
</html>\n\
';
chromelessWW.document.writ
e(parentSo
urce);
chromelessWW.document.clos
e();
chromelessWW.document.titl
e = title;
chromelessWW.focus();
}
}
//////////////////////////
//
// PUBLIC METHODS ///
//////////////////////////
//
this.openChromeless = openChromeless;
this.closeChromeless = closeChromeless;
this.minimizeChromeless = minimizeChromeless;
this.setURL = setURL;
this.resizeChromeless = resizeChromeless;
this.moveChromeless = moveChromeless;
}