• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

-==Submenu - url zuweissen==-

Jenny

Moderatorin
nun sitze ich schon unzaehlige stunden an einem menu mit submenu js, und es gelingt mir nicht url zuzuweissen (siehe additem) hier die code, mit der hoffnung das jemand helfen kann!

Code:
<html>
<head>
<script LANGUAGE="JavaScript1.2">
if(!window.saveInnerWidth) {
  window.onresize = resize;
  window.saveInnerWidth = window.innerWidth;
  window.saveInnerHeight = window.innerHeight;
}

function resize() {
    if (saveInnerWidth < window.innerWidth || 
        saveInnerWidth > window.innerWidth || 
        saveInnerHeight > window.innerHeight || 
        saveInnerHeight < window.innerHeight ) 
    {
        window.history.go(0);
    }
}

</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.2">
var _id = 0, _pid = 0, _lid = 0, _pLayer;
var _mLists = new Array();
document.lists = _mLists;
var isNav4, isIE4, isNav6;
if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
  isNav6 = navigator.userAgent.indexOf("Gecko")!=-1?true:false;
  isNav4 = (navigator.appName == "Netscape") ? true && !isNav6: false;
  isIE4 = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
}
function List(visible, width, height, bgColor) {
  this.setIndent = setIndent;
  this.addItem = addItem;
  this.addList = addList;
  this.build = build;
  this.rebuild = rebuild;
  this.setFont = _listSetFont;
  this._writeList = _writeList;
  this._showList = _showList;
  this._updateList = _updateList;
  this._updateParent = _updateParent;
  this.onexpand = null;
  this.postexpand = null;
  this.lists = new Array();// sublists

this.items = new Array();// layers

this.types = new Array();// type

this.strs = new Array(); // content

this.x = 0;
  this.y = 0;
  this.visible = visible;
  this.id = _id;
  this.i = 18;
  this.space = true;
  this.pid = 0;
  this.fontIntro = false;
  this.fontOutro = false;
  this.width = width || 150;
  this.height = height || 20;
  this.parLayer = false;
  this.built = false;
  this.shown = false;
  this.needsUpdate = false;
  this.needsRewrite = false;
  this.parent = null;
  this.l = 0;
  if(bgColor) this.bgColor = bgColor;
  else this.bgColor = null;
  _mLists[_id++] = this;
}
function _listSetFont(i,j) {
  this.fontIntro = i;
  this.fontOutro = j;
}
function setIndent(indent) { this.i = indent; if(this.i < 0) { this.i = 0; this.space = false; } }
function setClip(layer, l, r, t, b) {
  if(isNav4) {
    layer.clip.left = l; layer.clip.right = r;
    layer.clip.top = t;  layer.clip.bottom = b;
  } else {
    layer.style.pixelWidth = r-l;
    layer.style.pixelHeight = b-t;
    layer.style.clip = "rect("+t+","+r+","+b+","+l+")";
  }
}
function _writeList() {
  void(0);                              
  var layer, str, clip;
  for(var i = 0; i < this.types.length; i++) { 
    layer = this.items[i];
    if(isNav4) layer.visibility = "hidden";
    else layer.style.visibility = "hidden";
    str = "";
    if(isNav4) layer.document.open();
    str += "<TABLE WIDTH="+this.width+" NOWRAP BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>";
    if(this.types[i] == "list") {
      str += "<TD WIDTH=15 NOWRAP VALIGN=MIDDLE><A HREF=\"javascript:expand("+this.lists[i].id+");\">
<IMG BORDER=0 SRC=\"true.gif\" NAME=\"_img"+this.lists[i].id+"\"></A></TD>";
      _pid++;
    } else if(this.space)
      str += "<TD WIDTH=15 NOWRAP> </TD>";
    if(this.l>0 && this.i>0) str += "<TD WIDTH="+this.l*this.i+" NOWRAP> </TD>";
    str += "<TD HEIGHT="+(this.height-3)+" WIDTH="+(this.width-15-this.l*this.i)+" VALIGN=MIDDLE ALIGN=LEFT>";
    if(this.fontIntro) str += this.fontIntro;
    str += this.strs[i];
    if(this.fontOutro) str += this.fontOutro;
    str += "</TD></TABLE>";
    if(isNav4) {
      layer.document.writeln(str);
      layer.document.close();
    } else layer.innerHTML = str;
    if(this.types[i] == "list" && this.lists[i].visible)
      this.lists[i]._writeList();
  }
  this.built = true;
  this.needsRewrite = false;
  void(0);         
}
function _showList() {
  var layer;
  for(var i = 0; i < this.types.length; i++) { 
    layer = this.items[i];
    setClip(layer, 0, this.width, 0, this.height-1);
    if(isIE4||isNav6) {
      if(layer.oBgColor) layer.style.backgroundColor = layer.oBgColor;
      else layer.style.backgroundColor = this.bgColor;
    } else {
      if(layer.oBgColor) layer.document.bgColor = layer.oBgColor;
      else layer.document.bgColor = this.bgColor;
    }
    if(this.types[i] == "list" && this.lists[i].visible) {
      this.lists[i]._showList();
	}
  }
  this.shown = true;
  this.needsUpdate = false;
}
function _updateList(pVis, x, y) {
  var currTop = y, layer;
  for(var i = 0; i < this.types.length; i++) { 
    layer = this.items[i];
    if(this.visible && pVis) {
      if(isNav4) {
	layer.visibility = "visible";
	layer.top = currTop;
	layer.left = x;
      } else {
	layer.style.visibility = "visible";
	if(isNav6){
	  layer.style.top = currTop;
	  layer.style.left = x;
	} else {
	  layer.style.pixelTop = currTop;
	  layer.style.pixelLeft = x;
	}
      }
      currTop += this.height;
    } else {
      if(isNav4) layer.visibility = "hidden";
      else layer.style.visibility = "hidden";
    }
    if(this.types[i] == "list") {
//	  alert("vis["+i+"]="+this.lists[i].visible);

if(this.lists[i].visible) {
        if(!this.lists[i].built || this.lists[i].needsRewrite) this.lists[i]._writeList();
        if(!this.lists[i].shown || this.lists[i].needsUpdate) this.lists[i]._showList();
        if(isNav4)
		  layer.document.images[0].src = "http://www.js-x.com/examples/true.gif";
	    else if(isNav6)
		{
		  if(document.getElementById("_img"+this.lists[i].id))
    	    document.getElementById("_img"+this.lists[i].id).src = "false.gif";
		} else {
		  eval('document.images._img'+this.lists[i].id+'.src = "true.gif"');
		}
      } else {
	    if(isNav4)
		  layer.document.images[0].src = "false.gif";
	    else if(isNav6)
		{
		  if(document.getElementById("_img"+this.lists[i].id))
    	    document.getElementById("_img"+this.lists[i].id).src = "false.gif";
		  } else {
          eval('document.images._img'+this.lists[i].id+'.src = "false.gif"');
		}
      }
      if(this.lists[i].built)
        currTop = this.lists[i]._updateList(this.visible && pVis, x, currTop);
    }
  }
  return currTop;
}
function _updateParent(pid, l) {
  var layer;
  if(!l) l = 0;
  this.pid = pid;
  this.l = l;
  for(var i = 0; i < this.types.length; i++)
    if(this.types[i] == "list")
      this.lists[i]._updateParent(pid, l+1);
}
function expand(i) {
  _mLists[i].visible = !_mLists[i].visible;
  if(_mLists[i].onexpand != null) _mLists[i].onexpand(_mLists[i].id);
  _mLists[_mLists[i].pid].rebuild();
  if(_mLists[i].postexpand != null) _mLists[i].postexpand(_mLists[i].id);
}
function build(x, y) {
  this._updateParent(this.id);
  this._writeList();
  this._showList();
  this._updateList(true, x, y);
  this.x = x; this.y = y;
}
function rebuild() { this._updateList(true, this.x, this.y); }
function addItem(str, bgColor, layer) {
  var testLayer = false;
  if(!document.all) document.all = document.layers;
  if(!layer) {
    if(isIE4 || !this.parLayer) 
	  if(isNav6)
        testLayer = document.getElementById('lItem'+_lid);
	  else
	    testLayer = eval('document.all.lItem'+_lid);
    else {
        _pLayer = this.parLayer;
	   if(isNav6){
	     testLayer = document.getElementById('lItem'+_lid);
	   } else {
        testLayer = eval('_pLayer.document.layers.lItem'+_lid);
	  }
    }
    if(testLayer) layer = testLayer;
    else {
      if(isNav4) {
	if(this.parLayer) layer = new Layer(this.width, this.parLayer);
	else layer = new Layer(this.width);
      } else return;
    }
  }
  if(bgColor) layer.oBgColor = bgColor;
  this.items[this.items.length] = layer;
  this.types[this.types.length] = "item";
  this.strs[this.strs.length] = str;
  _lid++;
}
function addList(list, str, bgColor, layer) {
  var testLayer = false;
  if(!document.all) document.all = document.layers;
  if(!layer) {
    if(isIE4 || !this.parLayer)
	  if(isNav6)
	    testLayer = document.getElementById('lItem'+_lid);
	  else
	    testLayer = eval('document.all.lItem'+_lid);
    else {
        _pLayer = this.parLayer;
	   if(isNav6){
	     testLayer = document.getElementById('lItem'+_lid);
	   } else {
        testLayer = eval('_pLayer.document.layers.lItem'+_lid);
       }
    }
    if(testLayer) layer = testLayer;
    else {
      if(isNav4) {
	if(this.parLayer) layer = new Layer(this.width, this.parLayer);
	else layer = new Layer(this.width);
      } else return;
    }
  }
  if(bgColor) layer.oBgColor = bgColor;
  this.lists[this.items.length] = list;
  this.items[this.items.length] = layer;
  this.types[this.types.length] = "list";
  this.strs[this.strs.length] = str;
  list.parent = this;
  _lid++;
}

</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function menu_init() {
  if(parseInt(navigator.appVersion) < 4) {
    alert("Sorry, a 4.0+ browser is required to view this demo.");
    return;
  }
  var width, height = 22;
  if(isNav4) width = 3*window.innerWidth/4;
  else width = 3*document.body.clientWidth/4;
  width=150;// this overrides the auto logic for the width...

var bgColor = "#88AFC9";
  l = new List(true, width, height+5, bgColor);
  l.setFont("<FONT COLOR='#ffffff' FACE='Verdana' SIZE=-1><B>","</B></FONT>");
    m = new List(false, width, height, "#9FBFD4");
    m.setFont("<FONT COLOR='white' FACE='verdana' SIZE=-2>","</FONT>");
    m.addItem("Bracelets");
    m.addItem("Earrings");
    m.addItem("Necklaces");
    m.addItem("Pendants");
    m.addItem("Pins");
    m.addItem("Rings");
  l.addList(m, "Silver");
    o = new List(false, width, height, "#9FBFD4");
    o.setFont("<FONT COLOR='white' FACE='Verdana' SIZE=-2>","</FONT>");
    o.addItem("Bracelets");
    o.addItem("Earrings");
    o.addItem("Necklaces");
    o.addItem("Pendants");
    o.addItem("Pins");
    o.addItem("Rings");
  l.addList(o, "Gold");
  l.build(25,100);// coord of top left of menu x,y

}
</script>
<STYLE TYPE="text/css">
#spacer { position: absolute; height: 1120; }
</STYLE>
<STYLE TYPE="text/css">
#lItem0 { position:absolute; } 
#lItem1 { position:absolute; } 
#lItem2 { position:absolute; } 
#lItem3 { position:absolute; } 
#lItem4 { position:absolute; } 
#lItem5 { position:absolute; } 
#lItem6 { position:absolute; } 
#lItem7 { position:absolute; } 
#lItem8 { position:absolute; } 
#lItem9 { position:absolute; } 
#lItem10 { position:absolute; } 
#lItem11 { position:absolute; } 
#lItem12 { position:absolute; } 
#lItem13 { position:absolute; } 
#lItem14 { position:absolute; } 
</STYLE>


<title>gary smith</title></head>
<body onload="menu_init();">
<DIV ID="lItem0" NAME="lItem0"></DIV><DIV ID="lItem1" 
NAME="lItem1"></DIV><DIV ID="lItem2" 
NAME="lItem2"></DIV><DIV ID="lItem3" 
NAME="lItem3"></DIV><DIV ID="lItem4" 
NAME="lItem4"></DIV><DIV ID="lItem5" 
NAME="lItem5"></DIV><DIV ID="lItem6" 
NAME="lItem6"></DIV><DIV ID="lItem7" 
NAME="lItem7"></DIV><DIV ID="lItem8" 
NAME="lItem8"></DIV><DIV ID="lItem9" 
NAME="lItem9"></DIV><DIV ID="lItem10" 
NAME="lItem10"></DIV><DIV ID="lItem11" 
NAME="lItem11"></DIV><DIV ID="lItem12" 
NAME="lItem12"></DIV><DIV ID="lItem13" 
NAME="lItem13"></DIV></body>
</html>

p.s. ich weiss es fehlt was in der code fuer "getulr", hab auch probiert das script zu modifizieren, kommt aber immer fehler. vielleicht einer von euch js-genies hilft mir, oder gibt mir mindestens ne denkanstoss :D

thx!!!
 
Zuletzt bearbeitet:
Hallo Jenny!

Hast das mit addItem schon mal so versucht:

o.addItem('<a href="bracelets.html">Bracelets</a>');

Weiß nicht ob ich dich da jetzt richtig verstanden habe, hmmm.
 
:) das ist viel zu einfach andi um es nicht probiert zu haben...ich glaube es fehlt was in function...
 
ich hab zwar nich begriffen worum es bei diesem script geht(was es so machen sollte, aber vieleicht hab ich ja nur zu kurz gekuckt) aber ich lande immer auf diesen url pfad wenn ich klicke -> java script:expand(1);
 
es sollte ein menu mit submenu sein. leider fehlt was in der code (ich vermute "url" in "function addItem(str, bgColor, layer)") kriege aber nich hin, mit meine misserable javascript kenntnisse :D

anyway...ich habe jetzt eine aehnliche (erfolgreich) eingebaut. wems interessiert, kann hier sehen.
 
sieht richtig schick aus!

ich surf mit i.e 6 da kommt doch die kleine imagetoolbar, die erscheint dann mitten auf dem bilschirm (jewellery_mitte.gif), siehtn bischen doof aus
die würd ich wegmachen (<META HTTP-EQUIV="imagetoolbar" CONTENT="no">)
das ding is zwar manchmal sehr nützlich aber auf vielen seiten siehts einfach nur doof aus kann man das eigentlich irgendwo abstelle, hab nix gefunden *grübel*?.
 
Hi Jenny,

schau Dir mal den Anhang an, so müsste es Funktionieren.

Statt m.addItem("Bracelets"); jetzt
m.addItem("Bracelets", "", "","Test.html");
eingeben.

mfg Irvine
 

Anhänge

  • test.txt
    11,2 KB · Aufrufe: 10
Man Irvine,

D_A_N_K_E_!!!

Immer wenn man denkt, dass es eine komplizierte loesung ist, sollte man die einfachste probieren :D

Danke nochmal! Es funkzt super!
 
Zurück
Oben