Navi-Probs

CrocodileHunter

Grünschnabel
Hallo,

ich habe mit dem Editor Namo eine Navigationsleiste erstellt, funtz soweit auch ganz gut. Problem ist nur, daß ich egal welche Seite ich auruf in der Nav, das es immer in einem neuen Fenster aufgemacht wird. Auch im Html Code geht es mit basetarget nicht. Leider habe ich nicht viel Ahnung von JS um zu wissen was ich ändern muß. Vllt wißt ihr Rat.



CH
 
Da müsste man den Code von Seite/Skript sehen....die Zahl der Namo-Benutzer dürfte hier vergleichsweise gering ausfallen.
 
Erm...., wie soll ich es dir schonend beibingen?

Unser Magier ist gerade auf Mallorca und relaxt und meine Glaskugel ist zur Politur bei der Glaserei.

Es wäre als sehr hilfreich wenn du uns mit etwas Quellcode oder einem Link beglückst, damit wir dein Problem beheben oder einschränken können!
 
Magier herbeizauber und mit Fluch beleg das er nicht mehr nach Mallorca fliehen kann :-).

Oki her der Quelltext:
Code:
<html>

<head>
<title>Navigation</title>
<script language="JavaScript">
<!--
function namosw_list(parent, visible, width, height, font, size, fgColor, bgColor, indent, hbgColor) {
  this.additem = namosw_l_additem;
  this.addlist = namosw_l_addlist;
  this.make    = namosw_l_make;
  this.write   = namosw_l_write;
  this.show    = namosw_l_show;
  this.update  = namosw_l_update;
  this.updateparent = namosw_l_updateparent;
  this.items = new Array();
  this.id = document.namosw_lists.length;
  this.parent_id = 0;
  this.x = 0;
  this.y = 0;
  this.visible = visible;
  this.width    = width;
  this.height   = height;
  this.parent   = parent;
  this.indent = indent;
  this.bgColor  = bgColor;
  this.hbgColor = hbgColor;

  this.font_start = '';
  this.font_end   = '';

  this.font_start = '<font color=' + fgColor;
  if (font != '') this.font_start += ' face=\"' + font + '\"';
  if (size != '' && size.indexOf('pt', 0) == -1) this.font_start += ' size=' + size;
  this.font_start += '>';
  if (size.indexOf('pt', 0) != -1) {
    this.font_start += '<span style="font-size:' +size+ ';">';
    this.font_end    = '</span>';
  }
  this.font_end += '</font>';

  this.made     = false;
  this.shown    = false;
  document.namosw_lists[document.namosw_lists.length] = this;
}

function namosw_l_setclip(layer, left, right, top, bottom) {
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    layer.clip.left   = left; 
    layer.clip.right  = right;
    layer.clip.top    = top;  
    layer.clip.bottom = bottom;
  } else {    
    layer.style.pixelWidth  = right-left;
    layer.style.pixelHeight = bottom-top;
    layer.style.clip  = "rect(" + top + "," + right + "," + bottom + "," + left + ")";
  }
}

function namosw_l_write() {
  var layer, clip, str;
  for(var i = 0; i < this.items.length; i++) { 
    layer = this.items[i];
    if (navigator.appName.indexOf('Netscape', 0) != -1) 
      layer.visibility = "hidden";
    else 
      layer.style.visibility = "hidden";
    str = "";

    str += "<table width="+this.width+" nowrap border='0' cellpadding='0' cellspacing='0'><tr>";
    if (0 < this.indent) str += "<td width="+this.indent+" nowrap>&nbsp;</td>";
    if (layer.type == 'list') {
      str += "<td width=15  valign='middle' nowrap><a";
      if (navigator.appName.indexOf('Netscape', 0) != -1) str += " href=\"javascript:void(0);\"";
      else                                                str += " style=\"cursor:hand;\"";
      str += " onclick=\"namosw_l_expand("+layer.list.id+");\"><img src=\"collapsed.gif\" name=\"_img"+layer.list.id+"\" border='0'></a></td>";
    } else {
      str += "<td width=15 nowrap>&nbsp;</td>";
    }
    str += "<td height="+(this.height-3)+" width="+(this.width-15-this.indent)+" valign='middle' align='left'>";

    if (layer.url)       str += "<a href=\"" + layer.url + "\" target=\"" + layer.frame + "\" style=\"text-decoration:none;\">";
    if (this.font_start) str += this.font_start;
    str += layer.text;
    if (this.font_end) str += this.font_end;
    if (layer.url)       str += "</a>";

    str += "</td></table>";

    if (navigator.appName.indexOf('Netscape', 0) != -1) {
      layer.document.writeln(str);
      layer.document.close();
    } else {
      layer.innerHTML = str;
    }
    if (layer.type == 'list' && layer.list.visible)
      this.items[i].list.write();
  }
  this.made = true;
}

function namosw_l_show() {
  var layer;
  for(var i = 0; i < this.items.length; i++) { 
    layer = this.items[i];
    namosw_l_setclip(layer, 0, this.width, 0, this.height-1);
    if (navigator.appName.indexOf('Netscape', 0) != -1) {
      if (layer.oBgColor) layer.document.bgColor = layer.oBgColor;
      else layer.document.bgColor = this.bgColor;
    } else {
      if (layer.oBgColor) layer.style.backgroundColor = layer.oBgColor;
      else layer.style.backgroundColor = this.bgColor;
    }
    if (layer.type == 'list' && layer.list.visible)
      layer.list.show();
  }
  this.shown = true;
}

function namosw_l_update(parent_visible, x, y) {
  var top = y, layer, list;
  for(var i = 0; i < this.items.length; i++) { 
    layer = this.items[i];
    list  = layer.list;
    if (this.visible && parent_visible) {
      if (navigator.appName.indexOf('Netscape', 0) != -1) {
	layer.visibility = "visible";
	layer.top = top;
	layer.left = x;
      } else {
	layer.style.visibility = "visible";
	layer.style.pixelTop   = top;
	layer.style.pixelLeft  = x;	
//	if (layer.url) layer.style.cursor = "hand";
      }
      top += this.height;
    } else {
      if (navigator.appName.indexOf('Netscape', 0) != -1) layer.visibility = "hidden";
      else layer.style.visibility = "hidden";
    }
    if (layer.type == 'list') {
      if (list.visible) {
        if (!list.made)  list.write();
        if (!list.shown) list.show();
        if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "collapsed.gif";
	else eval('document.images._img'+list.id+'.src = "collapsed.gif"');
      } else {
	if (navigator.appName.indexOf('Netscape', 0) != -1) layer.document.images[0].src = "expanded.gif";
	else eval('document.images._img'+list.id+'.src = "expanded.gif"');
      }
      if (list.made)
        top = list.update(this.visible && parent_visible, x, top);
    }
  }
  return top;
}

function namosw_l_updateparent(parent_id) {
  this.parent_id = parent_id;
  for(var i = 0; i < this.items.length; i++)
    if (this.items[i].type == 'list')
      this.items[i].list.updateparent(parent_id);
}

function namosw_l_expand(i) {
  document.namosw_lists[i].visible = !document.namosw_lists[i].visible;
  list = document.namosw_lists[document.namosw_lists[i].parent_id];
  list.update(true, list.x, list.y);
}

function namosw_l_make(x, y) {
  this.updateparent(this.id);
  this.write();
  this.show();
  this.update(true, x, y);
  this.x = x; 
  this.y = y;
}

function namosw_l_additem(text, url, frame) {
  var layer = null;
  if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
    layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  else
    layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  if (layer == null) {
    if (navigator.appName.indexOf('Netscape', 0) != -1) 
      layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  }
  if (layer == null) return;

  if (url)   layer.url   = url;
  if (frame) {
    if (frame.indexOf('parent.') != 0)
      layer.frame = "_" + frame;
    else
      layer.frame = frame.substring(7, frame.length);
  }
  layer.type = 'item';
  layer.text = text;
  this.items[this.items.length] = layer;
  if (this.hbgColor) layer.hbgColor = this.hbgColor;
  if (this.bgColor)  layer.oBgColor = this.bgColor;
  if (layer.captureEvents)
    layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  layer.onmouseover = namosw_l_onmouseover;
  layer.onmouseout  = namosw_l_onmouseout;
//  layer.onmouseup   = namosw_l_onmouseup;
  document.namosw_lists.lid++;
}

function namosw_l_addlist(list, text, url, frame) {
  var layer = null;

  if (navigator.appName.indexOf('Netscape', 0) != -1 && this.parent)
    layer = eval('this.parent.document.layers.namoswlistitem'+document.namosw_lists.lid);
  else
    layer = eval('document.all.namoswlistitem'+document.namosw_lists.lid);
  if (layer == null) {
    if (navigator.appName.indexOf('Netscape', 0) != -1) 
      layer = this.parent ? new Layer(this.width, this.parent) : new Layer(this.width);
  }
  if (layer == null) return;

  if (url)   layer.url   = url;
  if (frame) {
    if (frame.indexOf('parent.') != 0)
      layer.frame = "_" + frame;
    else
      layer.frame = frame.substring(7, frame.length);
  }
  layer.list = list;
  layer.type = 'list';
  layer.text = text;
  this.items[this.items.length] = layer;
  list.parent = this;
  if (this.hbgColor) layer.hbgColor = this.hbgColor;
  if (this.bgColor)  layer.oBgColor = this.bgColor;
  if (layer.captureEvents)
    layer.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT|Event.MOUSEUP);
  layer.onmouseover = namosw_l_onmouseover;
  layer.onmouseout  = namosw_l_onmouseout;
//  layer.onmouseup   = namosw_l_onmouseup;
  document.namosw_lists.lid++;
}

function namosw_l_onmouseover()
{
  if (this.hbgColor) {
    if (navigator.appName.indexOf('Netscape', 0) != -1)
      this.bgColor = this.hbgColor;
    else
      this.style.backgroundColor = this.hbgColor;
  }
  if (this.url) self.status = this.url;
}

function namosw_l_onmouseout()
{
  if (this.hbgColor) {
    if (navigator.appName.indexOf('Netscape', 0) != -1) 
      this.bgColor = this.oBgColor;
    else 
      this.style.backgroundColor = this.oBgColor;
  }
  if (this.url) self.status = '';
}

function namosw_l_onmouseup()
{
  if (this.url) {
    if (this.frame == 'blank') {
      window.open(this.url, 'win1');
    } else {
      var frame_obj;
      if ((frame_obj = eval(this.frame)) != null)
        frame_obj.location = this.url;
    }
  }
}

function namosw_init_list(top_layer)
{
  if (parseInt(navigator.appVersion) < 4)
    return;
  if (top_layer == '')
    return;

  document.namosw_lists     = new Array();
  document.namosw_lists.lid = 0;

  var layer;
  if (navigator.appName.indexOf('Netscape', 0) != -1)
    layer = document.layers[top_layer];
  else
    layer = document.all[top_layer];

  var string = "";
  for (i = 0; i < 12; i++) {
    string = string + "<div id='namoswlistitem" + (document.namosw_lists.lid+i) + "' " +
                      "style='position: absolute;'></div>";
  }
  layer.innerHTML += string;

  l1 = new namosw_list(layer, true, 200, 22, 'Arial', '1', 'black', 'gray', 0);
  l1.additem('Startseite', 'file:///F|/Homepage/will.htm', 'self');
  l1.additem('Über mich', 'file:///F|/Homepage/ich.htm', 'self');
    l2 = new namosw_list(layer, false, 200, 17, 'Arial', '1', 'black', 'silver', 0, 'white');
    l2.additem('Daoc', 'file:///F|/Homepage/daocstart.htm', 'self');
    l2.additem('Musik', 'file:///F|/Homepage/musik.htm', 'self');
    l2.additem('Serienmörder', 'file:///F|/Homepage/serien.htm', 'self');
    l2.additem('Passiflora', 'file:///F|/Homepage/Passionsblume.htm', 'self');
    l2.additem('Seti', 'file:///F|/Homepage/seti.htm', 'self');
  l1.addlist(l2, 'Interessen', '', 'self');
  l1.additem('Gästebuch', '', 'self');
  l1.additem('Links', 'file:///F|/Homepage/links.htm', 'self');
  l1.additem('Impressum', 'file:///F|/Homepage/imp.htm', 'self');

  l1.make(0, 14);
}

function namosw_ns_resize()
{
  window.history.go(0);
}

// -->
</script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" OnLoad="namosw_init_list('layer1');" OnResize="namosw_ns_resize();">
<p>&nbsp;</p>
<div id="layer1" style="border-width:1px; border-style:none; width:200px; height:200px; position:absolute; left:10px; top:56px; z-index:1;">
    <p>&nbsp;</p>
</div>
<p>&nbsp;</p>
</body>

</html>


Außerdem sind da meines Erachtens jede Menge überflüssige Sachen drin, wie der Netscapehinweis usw. Allerdings fummle ich ma lieber da nicht rum, sonst geht gar nix mehr. Also immo steht die Verlinkung auf _self, aber auch mit anderen Möglichkeiten habe ich es nicht hinbekommen. Dies ist jetzt nur das Grundgrüst ohne Veränderung der Farben, Form und Größe
 
Zuletzt bearbeitet:
Habs jetzt nicht ausprobiert, aber es könnte reichen, wenn du function namosw_l_onmouseup()
durch
Code:
function namosw_l_onmouseup()
{
if (this.url) 
 {
 if(window.location!=this.url){window.location=this.url;}
 }
}
...ersetzt.
 

Neue Beiträge

Zurück