DynaMenu - JavaScript-QuelltextQuelltext von dynamenu.js |
![]() ![]() ![]() |
Dies ist die Auflistung der Datei dynamenu.js,
die die Funktionalität für die Fenstergeometrieausrichtung bereitstellt.
Im folgenden Quelltext sind Prozedurdeklarationen rot und Kommentare grün markiert. |
![]() ![]() ![]() ![]() |
/* Droeppez Dynamische Menuestruktur
* (c) 2002 Ulrich Kritzner
* Die Verwendung dieses Scripts in kommerziellen Seiten ist kostenpflichtig
*/
var ddm_before=" ";
var ddm_open="<img src=\"open.gif\" alt=\"\" border=\"0\">";
var ddm_closed="<img src=\"closed.gif\" alt=\"\" border=\"0\">";
var ddm_point="<img src=\"point.gif\" alt=\"\" border=\"0\">";
var ddm_only_one=0;
var ddm_menus=new Array();
var ddm_mcount=0;
function ddm_GetDivSection()
{
if (this.divsection)
return;
if (window.document.all)
this.divsection=eval("window.document.all."+this.name);
else
if (typeof(window.document.getElementById)=="function")
this.divsection=window.document.getElementById(this.name);
else
this.divsection=eval("window.document."+this.name);
}
function ddm_AddEntry(entryname,href,target,attribute)
{
this.menupoints[this.entries]=entryname;
this.mhrefs[this.entries]=0;
this.hrefs[this.entries]=href;
this.targets[this.entries]=target;
this.attributes[this.entries]=attribute;
this.menuflags[this.entries]=0;
this.entries++;
}
function ddm_AddSubMenu(menuname,href,target,attribute)
{
this.menupoints[this.entries]=new DynaMenu(menuname);
this.mhrefs[this.entries]="javascript:ddm_menus["+this.number+"].ChangeSubMenu("+this.entries+");";
this.hrefs[this.entries]=href;
this.targets[this.entries]=target;
this.attributes[this.entries]=attribute;
this.menupoints[this.entries].supermenu=this;
this.menuflags[this.entries]=1;
this.entries++;
return this.menupoints[this.entries-1];
}
function ddm_CloseAll()
{
var i;
for (i=0;i<this.entries;i++)
{
if (this.menuflags[i]==2)
{
this.menuflags[i]=1;
this.menupoints[i].CloseAll();
}
}
}
function ddm_ChangeSubMenu(entry)
{
if (this.menuflags[entry]==1)
{
var obj=this,i;
while (obj&&ddm_only_one)
{
if (!obj.supermenu)
obj.CloseAll();
obj=obj.supermenu;
}
obj=this;
while (obj)
{
obj.menuflags[entry]=2;
for (i=0;i<this.supermenu.entries;i++)
if (this==this.supermenu.menupoints[i])
entry=i;
obj=obj.supermenu;
}
}
else
if (this.menuflags[entry]==2)
{
this.menuflags[entry]=1;
this.menupoints[entry].CloseAll();
}
this.Paint();
}
function ddm_GetText()
{
var text="",fillin="",i,myobject=this;
while (myobject.supermenu)
{
myobject=myobject.supermenu;
fillin+=ddm_before;
}
for (i=0;i<this.entries;i++)
{
text+=fillin;
if (this.mhrefs[i])
{
text+="<a href=\""+this.mhrefs[i]+"\"";
if (this.attributes[i])
text+=" "+this.attributes[i];
text+=">";
}
else
if (this.hrefs[i])
{
text+="<a href=\""+this.hrefs[i]+"\"";
if (this.targets[i])
text+=" target=\""+this.targets[i]+"\"";
if (this.attributes[i])
text+=" "+this.attributes[i];
text+=">";
}
if (this.menuflags[i]==0)
text+="<img src=\""+ddm_point+"\" alt=\"\" border=\"0\"> "+this.menupoints[i];
if (this.menuflags[i]==1)
text+="<img src=\""+ddm_closed+"\" alt=\"\" border=\"0\"> ";
if (this.menuflags[i]==2)
text+="<img src=\""+ddm_open+"\" alt=\"\" border=\"0\"> ";
if (this.mhrefs[i])
{
text+="</a>";
if (this.hrefs[i])
{
if (this.hrefs[i]==":menu")
{
text+="<a href=\""+this.mhrefs[i]+"\"";
if (this.attributes[i])
text+=" "+this.attributes[i];
text+=">";
}
else
{
text+="<a href=\""+this.hrefs[i]+"\"";
if (this.targets[i])
text+=" target=\""+this.targets[i]+"\"";
if (this.attributes[i])
text+=" "+this.attributes[i];
text+=">";
}
}
text+=this.menupoints[i].name
}
if (this.hrefs[i])
text+="</a>";
text+="<br>\n";
if (this.menuflags[i]==2)
text+=this.menupoints[i].GetText();
}
return text;
}
function ddm_Paint()
{
if (this.supermenu)
{
this.supermenu.Paint();
return;
}
this.GetDivSection();
if (this.divsection.innerHTML)
this.divsection.innerHTML=this.GetText();
else
{
this.divsection.document.open();
this.divsection.document.write(this.GetText());
this.divsection.document.close();
}
}
function DynaMenu(menuname)
{
this.supermenu=0;
this.divsection=0;
this.name=menuname;
this.entries=0;
this.menupoints=new Array();
this.hrefs=new Array();
this.mhrefs=new Array();
this.targets=new Array();
this.attributes=new Array();
this.menuflags=new Array();
this.AddEntry=ddm_AddEntry;
this.AddSubMenu=ddm_AddSubMenu;
this.GetText=ddm_GetText;
this.CloseAll=ddm_CloseAll;
this.ChangeSubMenu=ddm_ChangeSubMenu;
this.GetDivSection=ddm_GetDivSection;
this.Paint=ddm_Paint;
this.number=ddm_mcount;
ddm_menus[this.number]=this;
ddm_mcount++;
}
|
![]() ![]() ![]() |
Autor: Ulrich Kritzner |