Tin@: Frameset nachladen (Vol. 78)

Ein Hallo an alle aus dem Forum,

eine Freundin hat mich mit meinem Problem an dieses Forum
weiterverwiesen. Auf meiner Seite möchte ich die Inhaltsseiten
direkt adressierbar machen. Das Frameset sieht folgendermaßen aus:

<frameset frameborder="0" framespacing="0" border="0" cols="160,*" >
   <frame name="banner" src="banner.html" scrolling="no" noresize>
  <frameset return true;" rows="60,*,60" >
    <frame name="navi" src="navi.html" scrolling="no" noresize>
    <frame name="seite" src="start_seite.html" scrolling="auto" >
    <frame name="sub" src="start_sub.html" scrolling="no" noresize>
</frameset>

  • links: Bannerframe
  • rechts: 1. Frame Hauptmenu (zwei frames gleichzeitig wechseln)
              2. Frame Inhaltseite
              3. Frame Untermenu

Meine Freundin hat mir deshalb folgendes Script gemailt.
Es klappt zwar, aber eine Fehlermeldung mit
" 'self.main.location' ist Null oder kein Objekt" poppt auf!

Worin liegt der Fehler? Darin, dass dieses Script nur für weniger Frames ist, oder was?

Es wäre nett, wenn mir ein freundlicher junger Mann, der der JavaScript-Programmierung mächtig ist, helfen könnte. Hier noch das Script:

INDEX.HTML

.
.
</head>

<!-- *********** JavaScript ********* -->

<SCRIPT language="JavaScript">
     if (parent.frames.length > 0)
        {top.location.href=self.document.location.href}
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!--
var FramesetGeladen = 1;
function SeiteLaden() {
if(self.location.search.length > 0) {
var laenge = self.location.search.length;
var Neue_url = self.location.search.substring(1,laenge);
if (document.images)
self.main.location.replace(Neue_url);
else
self.main.location.href = (Neue_url);
}
}
//-->
</SCRIPT>
<!-- *********  JavaScript Ende ****** -->

// HIER INS PASSENDE FRAMESET NOCH DEN ONLOAD-BEFEHL EINFÜGEN //

<frameset onLoad="SeiteLaden(); return true;"  rows="0,*" frameborder="0" border="0" framespacing="0">
    <frame name="top" src="leer.html" marginwidth="10" marginheight="10" scrolling="no" noresize>
    <frame  name="main" src="news/index.php" marginwidth="10" marginheight="10" scrolling="auto" noresize>
</frameset>

==============================================================================

DATEI.HTML

<head>

// DER PFAD MUSS IN JEDER DATEI ANGEPASST WERDEN, NOTFALLS ABSOLUT; HINTER DEM FRAGEZEICHEN MUSS WIEDER VON DEM ORDNER DER
INDEX.HTML AUSGEGANGEN WERDEN

<!-- ***************** Das muss in jede Datei **************** -->
<script language="JavaScript">
<!--
var ZielDatei = "index.html?datei.html";
if (!top.FramesetGeladen){
if(document.images)
top.location.replace(ZielDatei);
else
top.location.href = ZielDatei ;
}
//-->
</script>
<!-- ************ aktuellen Namen nicht vergessen ************** -->

</head>

Ciao, Hannah

  1. hallo,

    Nachtrag zu meiner Meldung: Die Selfsuche hab ich durchgestöbert, und nichts richtiges gefunden, deshalb bitte keine Verweise! Danke

  2. Hi Tina oder Hannah oder wer auch immer,

    Es wäre nett, wenn mir ein freundlicher junger Mann, der der JavaScript-Programmierung mächtig ist, helfen könnte.

    Schade, hätte Dir gerne geholfen. Da ich aber nach übereinstimmender Aussage wirklich aller, die mich kennen, weder freundlich noch jung bin, komme ich ja als Helfender leider nicht in Frage ;-(

    Ach so, falls Du die Hilfe trotzdem annehmen möchtest:

    " 'self.main.location' ist Null oder kein Objekt"

    heißt: es gibt halt kein Frame, das "main" heißt. Das wird aber erwartet. Du hast gute Chancen dass es völlig ausreicht, diese Zeile:

    <frame name="seite" src="start_seite.html" scrolling="auto" >

    umzuändern in <frame name="main" src="start_seite.html" scrolling="auto" >, und dann läuft's schon.

    Grüße,

    Utz (alt, unfreundlich)

  3. eine Freundin hat mich mit meinem Problem an dieses Forum
    weiterverwiesen. Auf meiner Seite möchte ich die Inhaltsseiten
    direkt adressierbar machen. Das Frameset sieht folgendermaßen aus:

    <frameset frameborder="0" framespacing="0" border="0" cols="160,*" >
       <frame name="banner" src="banner.html" scrolling="no" noresize>
      <frameset return true;" rows="60,*,60" >

    Was soll das heißen? "frameset return true" gibt's nicht.

    <frame name="navi" src="navi.html" scrolling="no" noresize>
        <frame name="seite" src="start_seite.html" scrolling="auto" >
        <frame name="sub" src="start_sub.html" scrolling="no" noresize>
    </frameset>

    Es klappt zwar, aber eine Fehlermeldung mit
    " 'self.main.location' ist Null oder kein Objekt" poppt auf!

    Hast Du einen Rahmen namens "main"? Nein? Eben. Der Browser kann schlecht eine Eigenschaft eines Objekts setzen, das garnicht existiert.

    Schau Dir nochmal an, wie Deine Freundin ihre verrahmte Seite konstruiert hat und passe die frameset-Definition sowie die Namen entsprechend an.

    Davon abgesehen:

    <SCRIPT language="JavaScript">

    <script type="text/javascript">

    if (parent.frames.length > 0)
            {top.location.href=self.document.location.href}
    </SCRIPT>

    </script>

    Gruß,
      soenk.e