Stefan Bion: index.htm

Beitrag lesen

Wir haben die verschiedenen Startseiten von unserem Server www.afj-hamm.de in diversen Internet-Suchmaschinen eingetragen. Leider oder auch glücklicherweise sieht es nun wohl so aus, das die Robots auch einzelne frames in die suchmaschinen eintragen, die ohne Zusammenhang dastehen. Gibt es eine Möglichkeit, das man einen Browser "zwingt", eine bestimmte Seite in einem Frameset darzustellen?
danke schonmal, ulf

Auf meinen privaten Seiten habe ich das mit JavaScript gelöst.
Lad' z.B. mal diese Seite hier: http://www.ndh.net/home/bion/fliegen.htm

Das Script (im HEAD)

<script language="JavaScript">
  <!--
    if(top.frames.length==0 top.frames[2].name!="HauptFensterStefanBion")
      top.location.href="index.htm?"+location.href.substring(location.href.lastIndexOf("/")+1,location.href.length);
  // -->
  </script>

merkt, ob die Seite ohne oder in einem falschen Frameset geladen wurde und ruft in diesen Fällen die Frameset-Datei index.htm mit dem Namen der Seite als Parameter auf.

In der Index-Datei wird das Frameset dynamisch generiert und der übergebene Name der Seite als Startseite für das Hauptframe eingesetzt:

a) im HEAD:

<script language="JavaScript">
  <!--
    // Aus fremden Frames befreien!
    if(top.frames.length>0) top.location.href=location.href;
  // -->
  </script>

b) hinter HEAD:

<script language="JavaScript">
<!--
  var seite=location.search.substring(1,location.search.length);
  if(seite.length==0) seite="start.htm";

document.write('<frameset cols="16,*,150" border=0 frameborder=0 framespacing=0>');
  document.write('  <frame src="border.htm" scrolling=no>');
  document.write('  <frameset rows="16,*,16" border=0 frameborder=0 framespacing=0>');
  document.write('    <frame src="border.htm" scrolling=no>');
  document.write('    <frame src="' + seite + '" name="HauptFensterStefanBion">');
  document.write('    <frame src="border.htm" scrolling=no>');
  document.write('  </frameset>');
  document.write('  <frame src="menu.htm" name="MenueFensterStefanBion">');
  document.write('</frameset>');
// -->
</script>

<noscript>
  <frameset cols="16,*,150" border=0 frameborder=0 framespacing=0>
    <frame src="border.htm" scrolling=no>
    <frameset rows="16,*,16" border=0 frameborder=0 framespacing=0>
      <frame src="border.htm" scrolling=no>
      <frame src="start.htm" name="HauptFensterStefanBion">
      <frame src="border.htm" scrolling=no>
    </frameset>
    <frame src="menu.htm" name="MenueFensterStefanBion">
  </frameset>
</noscript>

Gruß,
Stefan

P.S. Bug-Reports erwünscht. Bei NN 4.07 (nicht bei 4.5) z.B. habe ich manchmal das Phänomen, daß durch das Abbrechen des ersten Ladens der aufgerufenen Seite die Seite im Frameset nur unvollständig nachgeladen wird. Erst ein manueller Reload lädt sie dann komplett. Aber wie gesagt, nur bei NN 4.07. Sehr komisch...