JAVASCRIPT MENÜ kompliziert

  • #1
D

Daniel P.

Guest
Hallo ich habe folgendes Problem!
Ich habe ein Pulldown-Menü welches wunderbar funktioniert, jedoch wenn man die Hauptkategorie anklickt öffnet sich lediglich der Stammbaum des Menüs, sprich die Unterpunkte/Links...jedoch sollte sich bei Klick der Hauptkategorie auch in einem neuen Frame zugleich ein neues Fenster öffnen!
Ist das möglich?Wenn ja wie?

<script language=JavaScript type=text/JavaScript>
function flipPanel(panelName) {
if(eval(document.all.+panelName+.style.display) ==->none') {
eval(document.all.+panelName+.style.display='inline')
} else {
eval(document.all.+panelName+.style.display='none')
}
}
</script>



<p>  <a href=javascript: flipPanel('info');>Informationen</a><br>
<span id=info style=display: none>
   <a href=situation.htm target=main>- Situation</a><br>
   <a href=ziel_und_zukunft.htm target=main>- Ziel & Zukunft</a><br>
   <a href=aktuelles.htm target=main>- Aktuelles</a><br>
   <a href=Termine.htm target=main>- Termine</a><br>
</span></p>
 
  • #2
Probier mal anstatt
Code:
<a href=situation.htm target=main>- Situation</a>

das hier

Code:
<a href=situation.htm target=_blank>- Situation</a>

Das sollte dein Problem lösen.

Alles zum Thema HTML Grundlagen findest du unter
 
  • #3
Nein mein Problem ist ich möchte wenn ich Informationen klicke, dass nicht nur das Untermenü sich öffnet sondern das auch gleichzeitig in einem anderen Frame sich eine neue Seite aufbaut!
 
  • #4
Hi,
mit HTML geht das aber nicht. Dazu wirst du auch eine JS Funktion schreiben müssen bzw. dir eine im I-Net suchen (gibt es maßig, u.a. auch bei selfhtml.org)

Schriebe eine Funktion, die sinngemäß so aussieht
Code:
function mach(submenu, url){
     menuopen = öffne hier das submenu, z.b. parent.location.href=submenu oder document.getElementById(submenu).style.visibility = visible oder wie auch immer du das machen willst;
     windowname.location.href = url;
}
Aufrufen müsstest du sie dann wie folgt:
Code:
<a href= onclick=mach('submenuname','hilfe.htm')>Hilfe</a>

// Code-Klammern richtig gesetzt
 
  • #5
Dafür reichen meine Kenntnisse leider nicht!
Ich brauche das Menü so wie es nun ist ... im gleichen Stil!
Ist für eine Firmenhomepage...Kannst du mir nicht schreiben wie der Code aussehen müßte das es funktioniert!?
Vielen Dank im Vorraus
 
  • #6
Also, das ist man gar nicht so schwer.
Du hast folgenden Code:
Code:
<script language=JavaScript type=text/JavaScript> 
function flipPanel(panelName) { 
  if(eval(document.all.+panelName+.style.display) ==->none') { 
    eval(document.all.+panelName+.style.display='inline') 
  } else { 
    eval(document.all.+panelName+.style.display='none') 
  } 
} 
</script>

Diese Funktion erweitern wir jetzt einfach mit folgender Zeile und machen noch eine kleine Änderung:
Code:
parent.framename.location.href = url;

Dann ergibt sich folgende Funktion (Änderungen wurden FETT formatiert):
<script language=JavaScript type=text/JavaScript>
function flipPanel(panelName,url) {
if(eval(document.all.+panelName+.style.display) ==->none') {
eval(document.all.+panelName+.style.display='inline')
} else {
eval(document.all.+panelName+.style.display='none')
}
parent.framename.location.href = url;
}
</script>
Das war es eigentlich schon.
Jetzt musst du nur beachten, dass du die Funktion flipPanel nicht mehr mit nur einem Argument aufrufst, sondern mit zweien. Das 2. Argument gibt die Url der zu öffnenden Seite im Hauptfenster an.

Möchtest du nun die Seite Informationen im Fenster main öffnen, dann müsstest du die Funktion wie folgt aufrufen, wenn die Seite informationen.htm im selben Verzeichnis liegt wie das frameset selbst.
Code:
<a href=javascript: flipPanel('info','informationen.htm');>Informationen</a>
Sollte die Seite informationen.htm ein Verzeichnis tiefer liegen gilt:
Code:
<a href=javascript: flipPanel('info','../informationen.htm');>Informationen</a>

Das wars auch schon. So sollte es eigentlich gehen.
 
  • #7
  • #8
Das hört sich super an!
Hab das nun mal ausprobiert bei mir sagt er aber
parent.framename.location.href = url;
ist kein Objekt!
Hab auch den Frame-Namen eingesetzt... gleiche Fehlermeldung

Entschuldige wenn ich euch nerve!
Ihr seid echt super, Danke für die jetzige Hilfe schon mal
 
  • #9
Hi,
dein Hauptfenster heißt doch main, oder?

Dann müsste es heißen:
Code:
parent.main.location.href = url;
 
  • #10
ja und genau da kommt auch fehlermeldung

parent.main wäre kein objekt meint er!
 
  • #11
Dann müsstest du mal etwas mehr Einblicke in den Code gewären, damit man sehen kann, wo evtl. der Fehler ist.

Interessant ist vor allem die Seite, in der du die Frames definierst und noch die Seite, in der sich das Menu befindet.
 
  • #12
Das wäre nun mein jetziger Code fürs Menü dort funktioniert nun die Doppelfunktion:

<html>

<head>
<meta http-equiv=Content-Type content=text/html; charset=windows-1252>
<meta http-equiv=Content-Language content=de>
<script src=variablen.js type=text/javascript>
</script>
<script type=text/javascript>
<!--

function show(divid) {

document.getElementById(info).style.display=none;
document.getElementById(praesentation).style.display=none;
document.getElementById(marketing).style.display=none;
document.getElementById(referenzen).style.display=none;

document.getElementById(divid).style.display=inline;
}
//-->
</script>

<script type=text/javascript>
<!--
function over(imgname,imgsrc,imgsrc2,imgsrc3,effekt,position)
{
if (effekt=='over')
{
document.src=imgsrc2;
}
if (effekt=='down')
{
down10=position;
document['profil'].src='profil.gif';
document['studium'].src='studium.gif';
document['kooperationspartner'].src='kooperationspartner.gif';
document['softskills'].src='softskills.gif';
document['studiengange'].src='studiengange.gif';
document['team'].src='team.gif';
document['presse'].src='presse.gif';
document['bewerbung'].src='bewerbung.gif';
document['kontakt'].src='kontakt.gif';
document['anfahrt'].src='anfahrt.gif';

document[img].src=imgsrc3;
}
if (effekt=='out')
{
if (position == down10)
{
document[img].src=imgsrc3;

}
if (position != down10)
{

document[img].src=imgsrc;
}
}
}
//-->
</script>

<title>Menu</title>
<meta name=GENERATOR content=Microsoft FrontPage 4.0>
<meta name=ProgId content=FrontPage.Editor.Document>
<meta name=Microsoft Theme content=studio3 100, default>
<meta name=Microsoft Border content=tlb, default>
</head>

<body bgcolor=#FFFFCC text=#1821E5 link=#1821FF vlink=#FF21FF alink=#FF2100 >


<!--mstheme--></font></td></tr><!--msnavigation--></table><!--msnavigation-->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr>
<td valign=top width=1%>
<!--mstheme-->
<font face=Verdana, Arial, Helvetica>



<p>  <a href=Information.htm target=main onclick=show('info')>Informationen</a><br>
<span id=info style=display: none>
   <a href=situation.htm target=main>- Situation</a><br>
   <a href=ziel_und_zukunft.htm target=main>- Ziel & Zukunft</a><br>
   <a href=aktuelles.htm target=main>- Aktuelles</a><br>
   <a href=Termine.htm target=main>- Termine</a><br>
</span></p>

<p>  <a href=Präsentation.htm target=main onclick=show('praesentation')>Präsentation</a><br>
<span id=praesentation style=display: none>
   <a href=Liedea.htm target=main>- LIEDEA</a><br>
   <a href=Musterständer.htm target=main>- Musterständer</a><br>
   <a href=serv03.htm target=main>- Ausstellung</a><br>
</span></p>

<p>  <a href=Marketing.htm target=main onclick=show('marketing'))>Marketing</a><br>
<span id=marketing style=display: none>
   <a href=Anzeigen-Vorlagen.htm target=main>- Anzeigen/Vorlagen</a><br>
   <a href=Y-Angebote.htm target=main>- Y-Angebote</a><br>
   <a href=Beratungs-Scheck.htm target=main>- Beratungs-Scheck</a><br>
</span></p>

<p>  <a href=Referenz-Archiv.htm target=main onclick=show('referenzen')>Referenzen</a><br>
<span id=referenzen style=display: none>
   <a href=page_02.htm target=main>- Möbel</a><br>
   <a href=page_03.htm target=main>- Böden</a><br>
   <a href=page_04.htm target=main>- Archiv</a><br>
</span></p>

<p>  <a href=kontakt.htm target=main target=main>Kontakt</a>                 </p>
<p>  <a href=links.htm target=main target=main>Links</a>                    </p>




<!--mstheme--></table></body>
</html>


Leider funktioniert nicht mehr das einklappen der Menühauptgruppe... Also beim 1. Klick klappt das Menü aus und beim 2. Klick sollte das Menü wieder einklappen! Dies funktioniert nicht mehr!
 
  • #13
Das wäre meine index.hml

<html>
<head>
<title>INDEX</title>
</head>

<frameset rows=*,450 framespacing=0 border=0 frameborder=0>
<frame name=head scrolling=no noresize target=Oben src=head.htm marginwidth=5 marginheight=20>
<frameset cols=20%,*>
<frame name=menu src=menu.htm target=menu marginwidth=0 marginheight=1 scrolling=auto>
<frame name=main src=main.htm target=main marginwidth=0 marginheight=0 scrolling=auto>
</frameset>
</frameset>
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht
unterstützt.</p>
</body>
</noframes> </frameset>
</HTML>
 
  • #14
Leider funktioniert nicht mehr das einklappen der Menühauptgruppe.
Ich nehem mal dabei an, dass du damit meinst, dass wenn du Informationen anzeigen lässt und danach z.B. Präsentation, dann wird Informationen nicht mehr ausgeblendet?

Was bekommst du denn für eine Fehlermeldung?
 
  • #15
Doch Doch dann klappt es zusammen, jedoch schaffe ich es nicht das wenn ich 2 mal auf eine Hauptkategorie klicke das sie sich beim 1. mal ausblendet sprich öffnet und beim 2. klick auf den selben link wieder einblendet sprich sich schließt!

es kommt keine fehlermeldung da es im code noch nicht drinnen ist!
 
  • #16
Alles klar. Jetzt habe ich dich verstanden.

Das könntest du wie folgt realisieren (es wird sicherlich eine elegantere Methode geben, aber die fällt mir nicht ein):
Du könntest innerhalb der Funktion einen Zähler mitzählen lassen, der bei jedem Aufruf der Funktion erhöht wird. Einziger Nachteil hierbei ist, dass du für jedes Untermenu einen eigenen Zähler brauchst. Diesen

Code:
counter = new Array(4);
counter[divid]++;
if((counter[divid]%2)==0){
    document.getElementbyId[divid].style.visibility= none;
}
Sprich, immer wenn der Counter gerade ist wird beim Aufruf der Funktion das Menu wieder versteckt.
 
  • #17
Alles klar
das funktioniert schon mal, sollte ich mal eine andere Möglichkeit finden das Problem zu lösen werde ich den neuen Code hier rein schreiben, denke das ist auch im Interesse der anderen Forum-User....

Danke Cledith für deine Mühe...
 
Thema:

JAVASCRIPT MENÜ kompliziert

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben