Letzte Änderung: 01.09.2015 18:20 Uhr

Valid HTML 4.01! Valid CSS!

www.brain4.de > Scripts and more... > JavaScript: Ebenen referenzieren  

Ebenen referenzieren

Viele dynamischen Effekte, die im Browser stattfinden. beruhen auf dem jeweiligen Ebenenkonzept der Browserhersteller. Damit man flexibel auf Änderungen im DOM des Browsers reagieren kann, macht es Sinn, eine Funktion zu implementieren, die unabhängig vom verwendeten Browser die Referenz auf einen Layer liefert. Damit gibt es nur eine zentrale Stelle, die man warten, bugfixen bzw. erweitern muss.

Die hier vorgestellte Funktion getLayerRef() behandelt dabei die Implementierungen von:

Für den NC 4.x wird berücksichtigt, dass jedes Layer HTML-Element, welches innerhalb eines anderen Layers definiert wird, ein Kind des document-Objektes des Eltern-Layers ist. Ein Layer, welcher in so einem verschachtelten Layer liegt, müsste eigentlich wie folgt referenziert werden:

document.IDouterLayer.document.IDinnerLayer

Das ist mit dieser Funktion nicht mehr notwendig.

myLayer = getLayerRef("IDinnerLayer");

myLayer ist nun die Referenz auf den inneren Layer und sie brauchen in ihrem Skript keine Fallunterscheidung vornehmen. Damit wird der Programmierfluss nicht gestört und der Code wird nicht unnötig aufgeblasen.

Die Funktion ist wie folgt implementiert:

function getLayerRef ( /* String */ id, 
                       /* optional HTML-Object */ document) {
  if (!document)
    document = window.document;

  if (document.layers) {
    for (var l = 0; l < document.layers.length; l++)
      if (document.layers[l].id == id)
        return document.layers[l];
    for (var l = 0; l < document.layers.length; l++) {
      var result = getLayerRef(id, document.layers[l].document);
      if (result)
        return result;
    }
    return null;
  } else if (document.all) {
    return document.all[id];
  } else if (document.getElementById) {
    return document.getElementById(id);
  }
}

Diese Funktion können Sie verwenden in Internet Explorer 4+, Netscape Commnicator 4+, Mozilla und Derivate, Opera 5.2+

Ein Anwendung dieser Funktion finden Sie im Kapitel Layer ein- bzw. ausblenden.

zur Navigation