H-Man: Anker in Nachbarframe

Beitrag lesen

Hi !

Mein Script (A HREF="nameDokument.html#nameAnker TARGET="nameFrame") (A NAME="nameAnker") scheint ok zu sein.

Was kann ich tun, damit die Anker vom ersten Klick an funktionieren, ohne dass ich ein riesiges Dokument erstellen muss, welches alle Dokumente beinhaltet?

Ich hätte höchstens einen Ansatz zum Tüfteln... es gibt ja das ONLOAD-Event des Body-Tags, welches aufgerufen wird, wenn die Seite komplett geladen ist. Wenn man in diesem Event eine Variable setzt (z.B. seiteKomplettGeladen = 1) und statt der Links eine JavaScript-Funktion aufruft, könnte es hinhauen.

Meine Idee

(aufzurufendes Dokument)
<HEAD>
...
<SCRIPT LANGUAGE="JavaScript">
<!--
    parent.frames["nav"].seiteKomplettGeladen = 0;
//-->
</SCRIPT>

...
<BODY ONLOAD="parent.frames['nav'].seiteKomplettGeladen=1; return true;">
...

die Links in der Navigation (im Beispiel ein Frame mit dem Namen "nav"):

<A HREF="javascript:linkAufrufen(nr)">

...
function linkAufrufen(nr)
{

// erstmal die Seite laden...

parent.frames["inhalt"].location.replace(adresse[nr]);

zielAnker = anker[nr];

setTimeout("ankerLaden()",5000);
}

function ankerLaden()
{
  if (seiteKomplettGeladen == 1)
  {
     parent.frames["inhalt"].document.location.hash = zielAnker;
  }
  else
  {
    setTimeout("ankerLaden()",5000);
  }
}

Dieses Skript fragt über eine Variable ab, ob die Seite geladen ist. Nachdem es das Laden der kompletten Seite "angeschmissen" hat, wird ein Timeout (in Millisekunden) gesetzt, welcher bei komplettem Laden den Anker ansteuert (Zeit muß ggf. angepasst werden)
Ist die Seite noch nicht geladen, wird erneut ein Timeout gesetzt...

Probier‚s mal aus, hab ich jetzt nur mal so gezaubert, aber noch nicht getestet - vielleicht kann man darauf aufbauen...

CIAO
H-Man