Hallo JAVA-Experte
Ich habe ein kleines Problem mit der Darstellung der Ausgabe der beiden JAVA-Scripte meiner Seite. Diese stammen verschiedenen Internetseiten und wurden von mir entsprechend meiner Seiten umgeschrieben. Für diesen Beitrag habe ich sie nochmals auf das Wesentliche verkürzt und Formatierungen entfernt, aber so wie sie unten stehen müßten sie problemlos funktioneren, wenn man beliebige HTML-Verweise einsetzt.
Die HTML-Seite enthält zwei Buttons und ein Innenframe.
Das erste Script ist eine Suchmaschine für Stichwörter meiner Seiten.
Das zweite Script zeichnet einen Menübaum mit mehreren Untermenüs.
Eigentlich soll das ganze folgendermaßen funktionieren (mir ist schon klar, daß das mit alten Browsern nicht richtig klappt!).
-
beim Laden der Seite erscheint im Innenframe „framestartseite.htm“
-
beim drücken des ersten Buttons wird im Innenframe eine bestimmte normale HTML-Seite ohne Scripts dargestellt („beliebig.htm“)
-
beim Drücken des zweiten Buttons wird der Menübaum (suchmenue.js) im Innenrame angezeigt. Man kann einen Menüpunkt auswählen, der zur gewünschten Seite führt, die im aktuellen Fenster bzw. bei entsprechender Wahl (siehe script) im einem neuen Fenster geladen wird
-
bei Eingabe eines Suchbegriffes im Formular werden die Ergebnisse durch suchmaschine.js im Innenframe angezeigt.
Man kann ein Suchergebnis auswählen, das zur gewünschten Seite führt, die im aktuellen Fenster geladen wird.
Aber es passiert folgendes.
-
beim Laden der Seite erscheint der Menübaum im Innenframe
-
das gewählte Suchergebnis wird im Innenframe oder im neuen Fenster angezeigt???
-
sobald der Menübaum erstmalig im Innenframe geladen wurde, werden die Suchergebnisse und „beliebig.htm“ im neuen Fenster angezeigt???
Ich habe schon verschiedene Varianten ausprobiert, die das Ergebnis veränderten, aber so wie es sein sollte, habe ich es noch nie hinbekommen.
Bitte, bitte wenn Du eine Ahnung hast, wie die Scripts nach meinen Vorstellungen angezeigt werden, dann lass mich nicht weiter verzweifeln.
Im Voraus vielen vielen Dank
Daniel
anzeigefenster
/*
- Anlegen der Variablen „suchbegriff“, „beschreibung“ und „adresse“
- enthalten Daten des „Object“
*/
suchbegriff = new Object();
beschreibung = new Object();
addresse = new Object();
/*
- Festlegen wieviele Suchbegriffe der Variablen „suchbegriff“ zugeordnet werden
*/
suchbegriff[0] = 26
/*
- Definition der Variablen :
- suchbegriff ( führt bei Eingabe in der Suchmaske zur zugehörigen Seite )
- beschreibung ( erscheint im Suchergebnisfenster beim jeweiligen Link )
- adresse ( das Suchergebnis verweist auf diese Datei )
*/
suchbegriff[1] = „suchbegriff1“
beschreibung[1] = „BESCHREIBUNG“
addresse[1] = „s1.htm“
suchbegriff[2] = „suchbegriff2“
beschreibung[2] = „BESCHREIBUNG“
addresse[2] = „s2.htm“
suchbegriff[3] = „suchbegriff3“
beschreibung[3] = „BESCHREIBUNG“
addresse[3] = „s3.htm“
/*
- Definition der Funktion „durchsuchen“
*/
function durchsuchen()
{
/*
- Definition der Variable „fundergebnis“
- Definition der Variable „eingabe“
- document ( Beziehung zu aktuellem Browserfenster mit Suchmaske )
- forms ( Zugriff auf erstes Formular „suchenach“ im HTML-Code der Suchmasken-Seite )
- value ( in Suchmaske eingegebener Begriff )
- toLowerCase ( Umwandlung von Gross- in Kleinbuchstaben )
*/
var fundergebnis = false
var eingabe = document.forms[0].suchenach.value.toLowerCase();
var doc = top.menufenster.window.document
doc.clear()
doc.write("<body bgcolor=‚white‘>")
doc.opener = window;
doc.opener.name = „haupt“;
doc.write ("<head><title> ??? </title></head>");
doc.write ("<BODY TEXT=#000000 LINK=#000080 VLINK=#800040 ALINK=#FF0000><font face=Arial,Helvetica><br><h4><center>Suchergebnisse für den Begriff : „+eingabe+“</center></h4><hr>")
/*
- Zuordnung der „eingabe“ zu vorhandenem „suchbegriff“
*/
for (var i=1; i <= suchbegriff[0]; i++)
{
if(eingabe == suchbegriff[i])
{
fundergebnis = true;
doc.write (" <font size=1>"+beschreibung[i]+"</font>")
doc.write ("<h6> <a href="+addresse[i]+" target=‚haupt‘>Ansehen</a></h6>")
}
}
/*
- Ausgabe bei nicht vorhandenem „suchbegriff“
*/
if(!fundergebnis)
doc.write ("<h5><font color=#CC0000><center><blink>Dieser Begriff befindet sich nicht in der Suchdatenbank!</blink></center</font></h5>")
}
function gesamtmenu()
{
/*
- Anlegen der Variablen „pkt1“, „pkt2“, „pkt3“ ( Menüpunkte )
*/
var pkt1, pkt2, pkt3, pkt4
/*
- Definition der Variablen „wurzel“ ( „hauptmenu“ entspricht den Hauptmenüs )
*/
wurzel = hauptmenu(„Gesamtindex“)
/*
- Definition der Variablen „pkt1“, „pkt2“, „pkt3“
- „zuordnung“ erklärt Zuordnung der childmenüs
- „untermenu“ erklärt childmenüs
- „eintrag“ erklärt childmenüeinträge
- „ausgabe“ 0 oder 1 entspricht Öffnen in Frame oder neuem Fenster
- „beschreibung“ erklärt Seiteninhalt
- „link“ erklärt zu öffnende Seite
*/
pkt1 = zuordnung(wurzel, hauptmenu(„buchstabe a“))
pkt2 = zuordnung(pkt1, untermenu(„aa“))
zuordnung(pkt2, eintrag(0, „aaa“, „aaa.htm“, „“))
zuordnung(pkt2, eintrag(0, „aab“, „aab.htm“, „“))
pkt2 = zuordnung(pkt1, untermenu(„ab“))
zuordnung(pkt2, eintrag(0, „aba“, „aba.htm“, „“))
zuordnung(pkt2, eintrag(0, „abb“, „abb.htm“, „“))
zuordnung(pkt2, eintrag(0, „abc“, „abc.htm“, „“))
pkt1 = zuordnung(wurzel, hauptmenu(„buchstabe b“))
pkt2 = zuordnung(pkt1, untermenu(„ba“))
zuordnung(pkt2, eintrag(1, „baa“, „baa.htm“, „“))
zuordnung(pkt2, eintrag(1, „bab“, „bab.htm“, „“))
zuordnung(pkt2, eintrag(1, „bac“, „bac.htm“, „“))
}
/*
Definition der Funktion „hauptmenu“
*/
function hauptmenu(name)
{
/*
- Anlegen der Variablen „pktordnung“ ( Zuordnung der Menüpunkte )
*/
var pktordnung
pktordnung = new Array
pktordnung[0] = 0
pktordnung[1] = 0
pktordnung[2] = 0
pktordnung[3] = name
return pktordnung
}
/*
Definition der Funktion „untermenu“
*/
// pktiliary function to build the node
// The entries in arraypkt[4]…array[length-1] are strings built in generate doc entry
function untermenu(name)
{
/*
- Anlegen der Variablen „pktordnung“ ( Zuordnung der Menüpunkte )
*/
var pktordnung
pktordnung = new Array
pktordnung[0] = 0
pktordnung[1] = 0
pktordnung[2] = 1
pktordnung[3] = name
return pktordnung
}
//this way the generate tree function becomes simpler and less error prone
function zuordnung(parent, child)
{
parent[parent.length] = child
return child
}
/*
Definition der Funktion „eintrag“
*/
function eintrag(ausgabe, beschreibung, link)
{
var ausgabeort =""
if (ausgabe==0)
ausgabeort = „<a href=’“+link+"’ target=‚haupt‘><img src=‚doc.gif‘ alt=‚Frame‘"
else
ausgabeort = „<A href='http://“+link+"’ target=_blank><img src=‚link.gif‘ alt=‚new‘"
ausgabeort = ausgabeort + " border=0></a><td nowrap><font size=-1 face=‚Arial, Helvetica‘>" + beschreibung + „</font>“
return ausgabeort
}
/*
Definition der Funktion „nurwurzelzeigen“
*/
function wurzelzeigen()
{
var doc = top.menufenster.window.document
doc.clear()
doc.opener = window;
doc.opener.name = „haupt“;
doc.write("<body bgcolor=‚white‘>")
menustruktur(wurzel, doc, 0, 1, „“)
doc.close()
}
/*
Definition der Funktion „menustruktur“
*/
function menustruktur(menulaenge, doc, level, letztesmenu, verbindung)
{
var j=0
var i=0
doc.write("<table border=0 cellspacing=0 cellpadding=0>")
doc.write("<tr><td valign = middle nowrap>")
doc.write(verbindung)
if (level>0)
if (letztesmenu)
{
doc.write("<img src=‚lastnode.gif‘ width=16 height=22>")
verbindung = verbindung + „<img src=‚blank.gif‘ width=16 height=22>“
}
else
{
doc.write("<img src=‚node.gif‘ width=16 height=22>")
verbindung = verbindung + „<img src=‚vertline.gif‘ width=16 height=22>“
}
ordnergrafik(menulaenge, doc)
doc.write("</table>")
if (menulaenge.length > 4 && menulaenge[0]) // sub-nodes and the folder is open
{
if (!menulaenge[2]) //for folders with folders
{
level=level+1
for (i=4; i<menulaenge.length;i++)
if (i==menulaenge.length-1)
menustruktur(menulaenge[i], doc, level, 1, verbindung)
else
menustruktur(menulaenge[i], doc, level, 0, verbindung)
}
else //for folders with documents
{
for (i=4; i<menulaenge.length;i++)
{
doc.write("<table border=0 cellspacing=0 cellpadding=0 valign=center>")
doc.write("<tr><td nowrap>")
doc.write(verbindung)
if (i==menulaenge.length - 1)
doc.write("<img src=‚lastnode.gif‘ width=16 height=22>")
else
doc.write("<img src=‚node.gif‘ width=16 height=22>")
doc.write(menulaenge[i])
doc.write("</table>")
}
}
}
}
/*
Definition der Funktion „ordnergrafik“
*/
//builds the html code to display a folder and its label
function ordnergrafik(menulaenge, doc)
{
doc.write("<a href=‚javascript:stuck_out_tongue:arent.strukturoeffnen("" + menulaenge[3] + „“)‘><img src=")
if (menulaenge[1])
doc.write(„openfolder.gif width=24 height=22 border=noborder></a>“)
else
doc.write(„closedfolder.gif width=24 height=22 border=noborder></a>“)
doc.write("<td valign=middle align=left nowrap>")
doc.write("<font size=-1 face=‚Arial, Helvetica‘>"+menulaenge[3]+"</font>")
}
/*
Definition der Funktion „menugeschlossen“
*/
//when a parent is closed all children also are
function menugeschlossen(menulaenge)
{
var i=0
if (!menulaenge[2])
{
for (i=4; i< menulaenge.length; i++)
menugeschlossen(menulaenge[i])
}
menulaenge[0] = 0
menulaenge[1] = 0
}
/*
Definition der Funktion „klickregistrierung“
*/
//recursive over the tree structure
//called by openbranch
function klickregistrierung(menulaenge, menuname)
{
var i=0
if (menulaenge[3] == menuname)
{
if (menulaenge[0])
menugeschlossen(menulaenge)
else
{
menulaenge[0] = 1
menulaenge[1] = 1
}
}
else
{
if (!menulaenge[2])
for (i=4; i< menulaenge.length; i++)
klickregistrierung(menulaenge[i], menuname)
}
}
/*
Definition der Funktion „strukturoeffnen“
*/
//called when the user clicks on a folder
function strukturoeffnen(untermenuname)
{
klickregistrierung(wurzel, untermenuname)
if (untermenuname==„Gesamtindex“ && wurzel[0]==0)
top.menufenster.location=„x.htm“
verzoegerung = setTimeout(„wurzelzeigen()“,100)
}
//called after this html file is loaded
/*
Definition der Funktion „strukturoeffnen“
*/
function menustart()
{
gesamtmenu()
wurzelzeigen()
}
var wurzel = 0
var verzoegerung = 0
gesamtmenu()
Suchbegriff
