Frames mit JavaScript nachladen

Quelltext von loadframes.js

Dies ist die Auflistung der Datei beispiele/loadframes.js, die in den HEAD-Teil jeder frame-Datei eingebunden werden muß um das umgebende Frameset korrekt nachzuladen.

Im folgenden Quelltext sind Kommentare grün, Funktionsdeklarationen sind fett und rot markiert.
/* -------------------------------------------------------------------------
 * Frameset-Lader (Frame-Komponente)
 * von Ulrich Kritzner, 2002
 * (c) 2002 Ulrich Kritzner.
 * Die Verbreitung dieser Datei unterliegt der GNU General Public License.
 *
 * Frameset Loader (Frame Component)
 * Written by Ulrich Kritzner, 2002
 * Copyright 2002 by Ulrich Kritzner.
 * Redistribution of this file is permitted under the GNU General Public License.
 * ------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------
 * Diese JavaScript-Datei MUSS vom jeweiligen Frame
 * eingebunden werden, um den Frameset-Lader verwenden zu koennen.
 * Dies muss im HEAD-Teil vorgenommen werden.
 * ------------------------------------------------------------------------- */

var NewURL="",NewNum=0,subwindow;

function openFrameLoader(URLloader,LoadInstead,FrameNum)
/* Frameloader-Fenster oeffnen (wenn nicht bereits im Frameset)
     Attribute:
       URLloader:   URL der Frameloader-Seite
       LoadInstead: URL des Framesets (relativ zum Frameloader, nicht zur Seite)
       FrameNum:    Nummer des zu ersetzenden Frames */
{
  var ToLoad=0;
  if (typeof(top.frames)!="object")
    ToLoad=1;
  else
    if (top.frames.length<2)
      ToLoad=1;
  if (ToLoad)
  {
    NewURL=LoadInstead;
    NewNum=FrameNum;
    subwindow=window.open(URLloader,"frameloader",
      "location=no,menubar=no,toolbar=no,status=no,resizable=yes,scrollbars=yes,width=500,height=250");
  }
}

function LoadNewURL(object)
/* Laedt das Frameset, nur vom Frameloader-Fenster aus aufgerufen */
{
  var path="",i,newend=0;
  subwindow.FrameNum=NewNum;
  for (i=0;i<object.subwindow.location.href.length;i++)
    if ((object.subwindow.location.href.charAt(i)=="/")||
        (object.subwindow.location.href.charAt(i)=="\\"))
      newend=i+1;
  for (i=0;i<newend;i++)
    path+=object.subwindow.location.href.charAt(i);
  if ((typeof(object.location.replace)=="function")||
      (typeof(object.location.replace)=="object"))
    object.location.replace(path+NewURL);
  else
    object.location.href=path+NewURL;
}
Autor: Ulrich Kritzner