Sunday 1 July 2007

Javascript Modal Window

This javascript modal window is working under IE, Firefox, Nescape.

=== From Body ====
window.modal("SaveAsXML.htm", "height=270,width=460,toolbars=0,resizable=0,top=200,left=100");


=== From JS File ====
function modal(url,feature)
{
dialog(url,"",feature,true);
return false;
}

function dialog(url,name,feature,isModal)
{
if(url==null){return false;}
url = url
if(name==null){name=""}
if(feature==null){feature=""};
if(window.showModelessDialog)
{
var WindowFeature = new Object();
WindowFeature["width"] = 400;
WindowFeature["height"] =400;
WindowFeature["left"] = "";
WindowFeature["top"] = "";
WindowFeature["resizable"] = "";

if(feature !=null && feature!="")
{
feature = ( feature.toLowerCase()).split(",");

for(var i=0;i< feature.length;i++)
{
if( feature[i].isArgument())
{
var featureName = feature[i].split("=")[0];
var featureValue = feature[i].split("=")[1];

if(WindowFeature[featureName]!=null){WindowFeature[featureName] = featureValue; }
}
}
}

if(WindowFeature["resizable"]==1 || WindowFeature["resizable"]=="1" || WindowFeature["resizable"].toString().toLowerCase()=="yes"){WindowFeature["resizable"] = "resizable:1;minimize:1;maximize:1;"}
if(WindowFeature["left"]!=""){WindowFeature["left"] ="dialogLeft:" + WindowFeature["left"] +"px;";}
if(WindowFeature["top"]!=""){WindowFeature["top"] ="dialogTop:" + WindowFeature["top"] +"px;"; }
if(window.ModelessDialog ==null){window.ModelessDialog = new Object() ; };
if(name!="")
{
if(window.ModelessDialog[name]!=null && !window.ModelessDialog[name].closed )
{
window.ModelessDialog[name].focus();
return window.ModelessDialog[name];
}
}
var F = WindowFeature["left"] +WindowFeature["top"] + "dialogWidth:"+WindowFeature["width"] +"px;dialogHeight:"+WindowFeature["height"]+"px;center:1;help:0;resizable:" + WindowFeature["resizable"] +";status:No;scroll:no;unadorned:0;edge: raised;border:thick;"

if(isModal)
{
window.showModalDialog(url,self,F);
return false;
}
else
{
window.ModelessDialog[name] = window.showModelessDialog(url,self,F);
return window.ModelessDialog[name];
}
}
else
{
if(document.getBoxObjectFor)
{


if(isModal)
{
var Modal = window.open(url,name,"modal=1," + feature);
var ModalFocus = function()
{
if(!Modal.closed){Modal.focus();}
else{Modal =null;window.removeEventListener(ModalFocus,"focus");ModalFocus = null; };
}
window.addEventListener( "focus",ModalFocus, false );
return false;
}
else
{
return window.open(url,name,"modal=1," + feature);
}
}
else
{
return window.open(url,name,feature);
}
//
}
return null;
}

==== From opener Window =====
if (window.dialogArguments)
{
var openerV = window.dialogArguments;
} else {
var openerV = window.opener;
}

var getParentValue = openerV.metaData;


Download JS File

No comments: