consigliore: Problem mit Link für Framset

Hallo ich habe ein Problem mit der Verlinkung.

Ich habe mir ein fertiges Script geholt und wollte dies nun in meine Seite anbinden. Ich habe ein Frameset erstellt die Links solle im Frameset mainFrame (mitte.html) geöffnet werden. Aber dies funktioniert nicht, es wird immer eine neue Seite geöffnet.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Germedia</title>

<style type="text/css">
<!--
.menu
{

background-color: #8BCCDE;
 border: 1px solid #008;
 font-family: Verdana;
 position: absolute;
 font-weight: bold;
 padding-top: 5px;
 font-size: 10px;
 cursor: pointer;
 width: 180px;
 color: #fff;
}

.item_panel
{
 border-left: 1px solid #008;
 border-right: 1px solid #008;
 clip: rect(0, 150, 0, 0);
 position: absolute;
 width: 150px;
}

.item_panel a
{
 text-decoration: none;
 cursor: pointer;
 color: #000;
}

.item
{
 background-color: #e9f0f8;
 font-family: Verdana;
 font-size: 10px;
 width: 148px;
}
//-->
</style>

<script type="text/javascript">
<!--
// www: http://www.javarea.de
// Copyright by javarea.de

// Link[nr] = 'position [0 is menu/1 is item] | Link name | url | target (blank|top|frame_name)'
var Link = new Array();

Link[0]  = '0|Index';
Link[1]  = '1|Home|index.html|target (mainFrame)';
Link[2]  = '1|News - Angebote|http://www.javarea.de|target mainFrame';
Link[3]  = '1|Shop|http://www.javarea.de|';
Link[4]  = '1|Web Tools|oben.html|target (mainFrame)';
Link[5]  = '0|Downloads';
Link[6]  = '1|Tools|http://|';
Link[7]  = '1|Programme|http://|'
Link[8]  = '0|Support';
Link[9]  = '1|Login|http://|';
Link[10] = '1|Anmeldung|http://|';
Link[11] = '0|Germedia';
Link[12] = '1|Kontakt|';
Link[13] = '1|Impressum|';

var height    = 20; // Hoehe der Menuekoepfe
var iheight   = 15; // Hoehe der Menueelemente
var bgc       = '#e9f0f8' // background color of the item
var over_bgc  = '#fff';
var tc        = '#000' // text color of the item
var over_tc   = '#004891';
var speed     = 0;
var timerID   = 0;
var width     = 152;
var N         = (document.all) ? 0 : 1;
var self_menu = new Array();

function write_menu()
{
 smc   = 0;
 mn    = 0;
 mni   = 1;
 start = -1;

document.write('<div style="position: absolute;">');

for (var i = 0; i < Link.length; i++)
 {
  la = Link[i].split('|');

if (la[0] == 0)
  {
   if (start == 0)
   {
    document.write('</div>');

h = csmc * iheight;
    tmn = mn; // - h;
    self_menu[smc] = new Array(tmn, h, 0, -2);

smc++;
    mn--;
   }

csmc = 0;

document.write('<div id="down' + smc + '" class="menu" '
                + 'style="top: ' + mn + 'px; height: ' + height + 'px;" '
                + 'onclick="pull_down(' + smc + ', ' + mni + ');">'
                + '  ' + la[1] + '</div>');

self_menu[smc] = new Array(mn, height, 0, mni);

smc++;
   mni++;
   mn += height;
   start = 1;
  }
  else
  {
   if (start == 1)
   {
    if (N)
     mn += 2;

document.write('<div id="down' + smc + '" class="item_panel" '
                 + 'style="top: '+ mn + 'px;">');

start = 0;
   }

document.write('<a href="' + la[2] + '"'
                + ((la[3] != '') ? ' target="' + la[3] + '"' : '')
                + '><div id="d' + i + '" class="item" '
                + 'style="height: ' + iheight + 'px;'
                + ((N) ? ' width:150px;' : '')
                + '" onmouseover="color(this.id);" '
                + 'onmouseout="uncolor(this.id);">'
                + ' ' + la[1] + '</div></a>');

csmc++;
  }
 }

if (start == 0)
 {
  document.write('</div>');

h =  csmc * iheight;
  tmn = mn + 5; // - h;
  self_menu[smc] = new Array(tmn, h, 0);
  name = 'down' + (self_menu.length - 1);

obj = document.getElementById(name);
  obj.style.borderBottomColor = '#008';
  obj.style.borderBottomWidth = '1px';
  obj.style.borderBottomStyle = 'solid';
 }

document.write('</div>');
}

function color(obj)
{
 document.getElementById(obj).style.backgroundColor = over_bgc;
 document.getElementById(obj).style.color = over_tc;
}

function uncolor(obj)
{
 document.getElementById(obj).style.backgroundColor = bgc;
 document.getElementById(obj).style.color = tc;
}

function pull_down(nr, c)
{
 if (timerID == '')
 {
  to = self_menu[nr + 1][1]
  begin = nr + 2;

if (timerID != '')
   clearTimeout(timerID);

if (self_menu[nr + 1][2] == 0)
  {
   self_menu[nr + 1][2] = 1;

if (nr == (self_menu.length - 2))
    to++;

epull_down(begin, to, 0);
  }
  else
  {
   to = 0;
   self_menu[nr + 1][2] = 0;
   name = 'down' + (nr + 2);
   open_item = 0;

for (var i = 0; i < nr; i++)
    if (self_menu[i][2] == 1)
     open_item += self_menu[i][1];

if (N == false)
    open_item -= (c * 1);

if (nr == (self_menu.length - 2))
   {
    val = self_menu[self_menu.length - 1][1];
    to = -1;
   }
   else
    val = parseInt(document.getElementById(name).style.top) - (open_item) - (c * height);

epull_up(begin, to, val);
  }
 }
}

function epull_down(nr, to, nowv)
{
 name = 'down' + (nr - 1);
 obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + (nowv + 1) + ', 0)';

for (var i = nr; i < self_menu.length; i++)
 {
  name = 'down' + i;
  obj = document.getElementById(name);
  obj.style.top = parseInt(obj.style.top) + 1;
 }

nowv++;

if (nowv < to)
  timerID = setTimeout('epull_down(' + nr + ', ' + to + ', ' + nowv + ');', speed);
 else
  timerID = 0;
}

function epull_up(nr, to, nowv)
{
 name = 'down' + (nr - 1);
 obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + nowv + ', 0)';

for (var i = nr; i < self_menu.length; i++)
 {
  name = 'down' + i;
  obj = document.getElementById(name);
  obj.style.top = parseInt(obj.style.top) - 1;
 }

nowv--;

if(nowv > to)
  timerID = setTimeout('epull_up(' + nr + ', ' + to + ', ' + nowv + ');', speed);
 else
  timerID = 0;
}

function startup(nr)
{
 write_menu();

if (nr != 0)
 {
  for (var i = 0; i < self_menu.length; i++)
  {
   if (self_menu[i][3] == nr)
    pull_down(i, nr);

i == self_menu.length;
  }
 }
}
//-->
</script>

</head>
<body>

<script type="text/javascript">
<!--
startup(1);
//-->
</script>

</body>
</html>

--> Das ist der ganze Quellcode

  1. Hello out there!

    Ich habe mir ein fertiges Script geholt

    Man sollte vorsichtig sein, sich fertige Scripte zu holen, ohne zu wissen, was sie bewirken.

    Ich habe ein Frameset erstellt

    Warum tust du das? Frames sind out.

    Jegliche Navigation sollte ohne JavaScript möglich sein; etliche Nutzer haben JavaScript deaktiviert, manche gar nicht die Möglichkeit, es zu aktivieren. Außerdem gibt es noch andere Agenten. [DIALOG-ROBOT]

    Dein Konzept ist völliger Murks. Du solltest nicht gegen die Symptome der Krankheit ankämpfen, sondern das Übel beseitigen.

    Evtl. möchtest du Teile der Webseite auslagern.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hi,

    Link[1]  = '1|Home|index.html|target (mainFrame)';

    Das erzeugt folgenden Code:

    <a href="index.html" target="target (mainFrame)"><div id="d1" class="item" style="height: 15px; width: 150px; background-color: rgb(233, 240, 248); color: rgb(0, 0, 0);" onmouseover="color(this.id);" onmouseout="uncolor(this.id);"> Home</div></a>

    "target (mainFrame)" ist keine gueltige Angabe fuer target. Hier muesste nur "mainFrame" stehen.
    Ausserdem darf ein a kein Blockelement wie div enthalten.

    mfG,
    steckl