Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Link mit Javascript aktiv halten?





Frage

Hallo! folgende Problemstellung: Habe eine Homepage mit 3 Frames - Top-Frame mit Menuesteuerung der Hauptseiten (bleibt immer gleich) - Seiten-Frame mit Menüsteuerung der Unterseiten (ändert sich wird mit if (parent.frames.length > 0) top.subnav.location='subnav_blabla.html'; jweils neu geladen). - Haupt-Frame mit Text Wenn ich nun eine Hauptseite auswähle im Topmenue wird mit CSS der Menüpunkt hervorgehoben als activ link. Diesen Focus verliere ich aber, wenn ich im Untermenue (Seitenframe) auf einen Link klicke. Was muss ich tun, dass im Top-Frame Menue (dass sich hja nicht ändert) meine ursprüngliche Auswahl weiter active link bleibt? Danke im voraus für die Tipps! bigman

Antwort 1 von MixMax

puh... hatte mal sowas auch gebastelt, gibt da viele möglichkeiten, von speichern in einer variablen was nun aktiv ist bis hin zu vergleichen des hauptframe-links, kannst dann alles machen also z.B. ein anderes Bild für den ausgewählten menupunkt, oder aber dann must du bei jeden klick neu machen den focus neu setzen (was aber sehr problematisch ist) also z.B. mit
top.navigatorframe.links[4].focus();
aber das mit dem focus vergiss besser, evtl gibst du jeden link einen namen und änderst deren farbe bei anklicken.

<script language='JavaScript'>
<!--
var NormalStyle='color:FF0000;';
var WahlStyle='color:00FF00;';
function Linkfarben(DerLink) {
  for (i=0;i<document.links.length;i++) {
    document.links.style=NormalStyle;
  }
  DerLink.style=WahlStyle;
}
-->
</script>
<a href='...' target='Hauptframe' onclick='Linkfarben(this);'>link1</a>
<a href='...' target='Hauptframe' onclick='Linkfarben(this);'>link2</a>
<a href='...' target='Hauptframe' onclick='Linkfarben(this);'>link3</a>


sowas in der Art (nun nur eben aus den Finger gesaugt, kanns nicht testen)

Antwort 2 von MixMax

hab wohl // vor --> vergessen - also sollte
//--> heissen, weiß nicht ob er da schon in einen error läuft.

Antwort 3 von bigman

Danke für die schnelle Antwort.
Der Gedanke ist nicht schlecht. Leider verliert der Link nach wie vor seinen Focus wenn ich auf einen anderen Link im Sub-Frame klicke!

Antwort 4 von MixMax

ich würde es auch nicht mit Fokus halten versuchen, den Fokus zu erzwingen kann gerade bei formulareingaben zu problemen führen.
versuche es mal mit ändern des Styles für das andere aussehen das man sieht was man angeklickt hat, aber den fokus lass mal.

in dem beispiel kannst du wenn es klappt erst alle links zurücksetzen und dann wird der angeklickte anders eingefärbt, auch ober/unterstrich geht so etc.

sonst sagt mal warum der fokus unbedingt sonnst noch beim link bleiben soll ?

Antwort 5 von bigman

Also ich habs so programmiert, wie du es angegeben hast und es funktioniert, aber eben nur solange ich nicht einen Link im Seiten-Frame anklicke. Dann nämlich verliert mein ehemals ausgewählter (Haupt-)Link seine OnClick Eigenschaft und wird wieder normal dargestellt.
Was ich letztendlich will ist, dass erst bei Anklicken eines anderen Links im Top-Frame die OnClick Eigenschaft wechselt, ansonsten aber Clicks in anderen Frames keine Auswirkungen auf die Eigenschaft des Top-Frames haben.

Antwort 6 von bigman

Also ich habs mit dem Focus() probiert:
if (parent.frames.length > 0) top.nav.document.links.focus();
wobei "i" natürlich den Hauptmenüpunkt bezeichnet; "nav" ist der Name des Menü-Frames. In deinem Vorschlag hat nur "document" gefehlt.
Gracias!

Antwort 7 von MixMax

hm also onclick führt das script ja nur einmal aus, das heißt beim klicken auf einen link wird komplett die farbe etc verändert (fest gesetzt, also normal bleibt das unabhängig vom focus), ich schaue es mir zu hause nochmal an, ich stelle mir das etwas anders vor als du es gerade erklärst.


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: