Mark: Navigation

Hi

an alle.Ich habe ein problem mit meiner Javascrpt Navigation. Es gibt auch Links zu Dateien in Unterordnern meiner Homepage und wenn ich da die Navigation einsetzte Suct er die Links im Unterordner was verständlich ist. WAs muss ich ändern das der Script nur auf die Dateien im Hauptordner zugreift? Danke im vorraus.

Hier ist der Script:

<META http-equiv=Content-Type content="text/html; charset=windows-1252"> <STYLE>all.clsMenuItemNS {  Z-INDEX: 100; FONT: bold 12px Arial; CURSOR: hand; COLOR: white; TEXT-DECORATION: none } .clsMenuItemIE {  Z-INDEX: 100; FONT: bold 12px Arial; CURSOR: hand; COLOR: white; TEXT-DECORATION: none } #MainTable A:hover {  COLOR: yellow } </STYLE>

<SCRIPT language=JavaScript>

//Top Nav Bar I v2- By Constantin Kuznetsov Jr. (script@esolutiononline.com)

var keepstatic=1 //specify whether menu should stay static 0=non static (works only in IE4+) var menucolor="red" //specify menu color var submenuwidth=150 //specify sub menus' color

</SCRIPT>

<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD> <BODY leftMargin=0 topMargin=0 marginwidth="0" marginheight="0"> <SCRIPT language=JavaScript> if (document.all)    {n=0;ie=1;ns6=0;fShow="visible";fHide="hidden";} if (document.getElementById&&!document.all)    {n=0;ie=0;ns6=1;fShow="visible";fHide="hidden";} if (document.layers) {n=1;ie=0;ns6=0;fShow="show";fHide="hide";}

//Top Nav bar script v2- http://www.dynamicdrive.com/dynamicindex1/sm/index.htm

opr6=ie&&navigator.userAgent.indexOf("Opera")!=-1

//window.onerror=new Function("return true") //////////////////////////////////////////////////////////////////////////// // Function Menu()                                                        // //////////////////////////////////////////////////////////////////////////// rightX = 0; function Menu() {  this.bgColor     = menucolor;  if (ie) this.menuFont = "bold 12px Arial";  if (n)  this.menuFont = "bold 12px Verdana";  this.fontColor   = "red";

this.addItem    = addItem;  this.addSubItem = addSubItem;  this.showMenu   = showMenu;  this.mainPaneBorder = 0;  this.subMenuPaneBorder = 0;

this.subMenuPaneWidth = submenuwidth;

lastMenu = null;

rightY = 0;  leftY = 0;  leftX = 0;

HTMLstr = "";  HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";  HTMLstr += "\n";  if (ie||ns6) HTMLstr += "<div id='MainTable' style='position:relative;top:0'>\n"; // if (n)  HTMLstr += "<layer name='MainTable'>\n";  HTMLstr += "<table width='100%' bgcolor='"+this.bgColor+"' border='"+this.mainPaneBorder+"'>\n";  HTMLstr += "<tr>";  if (n) HTMLstr += "<td> ";  HTMLstr += "<!-- MAIN MENU STARTS -->\n";  HTMLstr += "<!-- MAIN_MENU -->\n";  HTMLstr += "<!-- MAIN MENU ENDS -->\n";  if (n) HTMLstr += "</td>";  HTMLstr += "</tr>\n";  HTMLstr += "</table>\n";  HTMLstr += "\n";  HTMLstr += "<!-- SUB MENU STARTS -->\n";  HTMLstr += "<!-- SUB_MENU -->\n";  HTMLstr += "<!-- SUB MENU ENDS -->\n";  HTMLstr += "\n";  if (ie||ns6) HTMLstr+= "</div>\n"; // if (n)  HTMLstr+= "</layer>\n";  HTMLstr += "<!-- MENU PANE DECALARATION ENDS -->\n"; }

function addItem(idItem, text, hint, location, altLocation) {  var Lookup = "<!-- ITEM "+idItem+" -->";  if (HTMLstr.indexOf(Lookup) != -1)  {   alert(idParent + " already exist");   return;  }  var MENUitem = "";  MENUitem += "\n<!-- ITEM "+idItem+" -->\n";  if (n)  {   MENUitem += "<ilayer name="+idItem+">";   MENUitem += "<a href='.' class=clsMenuItemNS onmouseover="displaySubMenu('"+idItem+"')" onclick="return false;">";   MENUitem += "| ";   MENUitem += text;   MENUitem += "</a>";   MENUitem += "</ilayer>";  }  if (ie||ns6)  {   MENUitem += "<td>\n";   MENUitem += "<div id='"+idItem+"' style='position:relative; font: "+this.menuFont+";'>\n";   MENUitem += "<a ";   MENUitem += "class=clsMenuItemIE "; //  MENUitem += "style='text-decoration: none; font: "+this.menuFont+"; color: "+this.fontColor+"; cursor: hand;' ";   if (hint != null)    MENUitem += "title='"+hint+"' ";   if (location != null)   {    MENUitem += "href='"+location+"' ";    MENUitem += "onmouseover="hideAll()" ";   }   else   {    if (altLocation != null)     MENUitem += "href='"+altLocation+"' ";    else     MENUitem += "href='.' ";    MENUitem += "onmouseover="displaySubMenu('"+idItem+"')" ";    MENUitem += "onclick="return false;" "   }   MENUitem += ">";   MENUitem += "| \n";   MENUitem += text;   MENUitem += "</a>\n";   MENUitem += "</div>\n";   MENUitem += "</td>\n";  }  MENUitem += "<!-- END OF ITEM "+idItem+" -->\n\n";  MENUitem += "<!-- MAIN_MENU -->\n";

HTMLstr = HTMLstr.replace("<!-- MAIN_MENU -->\n", MENUitem); }

function addSubItem(idParent, text, hint, location) {  var MENUitem = "";  Lookup = "<!-- ITEM "+idParent+" -->";  if (HTMLstr.indexOf(Lookup) == -1)  {   alert(idParent + " not found");   return;  }  Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->";  if (HTMLstr.indexOf(Lookup) == -1)  {   if (n)   {    MENUitem += "\n";    MENUitem += "<layer id='"+idParent+"submenu' visibility=hide bgcolor='"+this.bgColor+"'>\n";    MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+">\n";    MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";    MENUitem += "</table>\n";    MENUitem += "</layer>\n";    MENUitem += "\n";   }   if (ie||ns6)   {    MENUitem += "\n";    MENUitem += "<div id='"+idParent+"submenu' onmouseout=operahide() style='position:absolute; visibility: hidden; z-index:100; width: "+this.subMenuPaneWidth+"; font: "+this.menuFont+"; top: -300;'>\n";    MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+">\n";    MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";    MENUitem += "</table>\n";    MENUitem += "</div>\n";    MENUitem += "\n";   }   MENUitem += "<!-- SUB_MENU -->\n";   HTMLstr = HTMLstr.replace("<!-- SUB_MENU -->\n", MENUitem);  }

Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";  if (n)  MENUitem = "<tr><td><a class=clsMenuItemNS title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";  if (ie||ns6) MENUitem = "<tr><td><a class=clsMenuItemIE title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";  MENUitem += Lookup;  HTMLstr = HTMLstr.replace(Lookup, MENUitem);

}

function showMenu() {  document.writeln(HTMLstr); }

//////////////////////////////////////////////////////////////////////////// // Private declaration function displaySubMenu(idMainMenu) {  var menu;  var submenu;  if (n)  {   submenu = document.layers[idMainMenu+"submenu"];   if (lastMenu != null && lastMenu != submenu) hideAll();   submenu.left = document.layers[idMainMenu].pageX;   submenu.top  = document.layers[idMainMenu].pageY + 25;   submenu.visibility = fShow;

leftX  = document.layers[idMainMenu+"submenu"].left;   rightX = leftX + document.layers[idMainMenu+"submenu"].clip.width;   leftY  = document.layers[idMainMenu+"submenu"].top+    document.layers[idMainMenu+"submenu"].clip.height;   rightY = leftY;  } else if (ie||ns6) { //alert(document.getElementById(idMainMenu+"submenu").id)   menu = ie? eval(idMainMenu) : document.getElementById(idMainMenu);   submenu = ie? eval(idMainMenu+"submenu.style") : document.getElementById(idMainMenu+"submenu").style;   submenu.left = calculateSumOffset(menu, 'offsetLeft'); //  submenu.top  = calculateSumOffset(menu, 'offsetTop') + 30;   submenu.top  = menu.style.top+23;   submenu.visibility = fShow;   if (lastMenu != null && lastMenu != submenu) hideAll();

leftX  = ie? document.all[idMainMenu+"submenu"].style.posLeft : parseInt(document.getElementById(idMainMenu+"submenu").style.left);   rightX = ie? leftX + document.all[idMainMenu+"submenu"].offsetWidth : leftX+parseInt(document.getElementById(idMainMenu+"submenu").offsetWidth);

leftY  = ie? document.all[idMainMenu+"submenu"].style.posTop+    document.all[idMainMenu+"submenu"].offsetHeight : parseInt(document.getElementById(idMainMenu+"submenu").style.top)+parseInt(document.getElementById(idMainMenu+"submenu").offsetHeight);   rightY = leftY;  }  lastMenu = submenu; }

function hideAll() {  if (lastMenu != null) {lastMenu.visibility = fHide;lastMenu.left = 0;} }

function calculateSumOffset(idItem, offsetName) {  var totalOffset = 0;  var item = eval('idItem');  do  {   totalOffset += eval('item.'+offsetName);   item = eval('item.offsetParent');  } while (item != null);  return totalOffset; }

function updateIt(e) {  if (ie&&!opr6)  {   var x = window.event.clientX;   var y = window.event.clientY;

if (x > rightX || x < leftX) hideAll();   else if (y > rightY) hideAll();  }  if (n||ns6)  {   var x = e.pageX;   var y = e.pageY;

if (x > rightX || x < leftX) hideAll();   else if (y > rightY) hideAll();  } }

function operahide(){         if (opr6){         if (!MainTable.contains(event.toElement))         hideAll() } }

if (ie||ns6) {  document.body.onclick=hideAll;  document.body.onscroll=hideAll;  document.body.onmousemove=updateIt; } if (document.layers) {  window.captureEvents(Event.MOUSEMOVE);  window.captureEvents(Event.CLICK);  window.onmousemove=updateIt;  window.onclick=hideAll; }

</SCRIPT>

<SCRIPT language=JavaScript>

function showToolbar() { // AddItem(id, text, hint, location, alternativeLocation); // AddSubItem(idParent, text, hint, location);

menu = new Menu();  menu.addItem("Spo", "Sport", "Sport",  null, null);  menu.addItem("FCB", "FC Bayern München", "FC Bayern München",  null, null);  menu.addItem("Col", "Columbo", "Columbo",  null, null);  menu.addItem("Son", "Sonstiges", "Sonstiges",  null, null);  menu.addItem("sgt", "Songtexte", "Songtexte",  null, null);

menu.addSubItem("Spo", "Formel1", "Formel1",  "formeleins.htm");  menu.addSubItem("Spo", "Skispringen", "Skispringen",  "schkispringen.htm");

menu.addSubItem("FCB", "Startseite", "FC Bayern München Home",  "fc_bayern_muenchen.html");  menu.addSubItem("FCB", "Bilder", "FC Bayern München Bilder",  "fc_bayern_muenchen_bilder/seite.htm");  menu.addSubItem("FCB", "Quiz", "FC Bayern München Quiz",  "bayern_fragen.htm");

menu.addSubItem("Col", "Startseite", "Columbo",  "columbo_startseite.htm");  menu.addSubItem("Col", "Beschreibung", "Columbo",  "columbo_beschreibung.htm");  menu.addSubItem("Col", "Peter Falk ", "Columbo", "columbo_peter_falk.htm");  menu.addSubItem("Col", "Bilder", "Columbo",  "columbo_bilder.htm");

menu.addSubItem("Son", "Neues Gästebuch ansehen", "Gästebuch",  "http://geocities.yahoo.com/gb/view?member=markdde");  menu.addSubItem("Son", "Altes Gästebuch ansehen", "Gästebuch",  "old.html");  menu.addSubItem("Son", "Ins Gästebuch eintragen", "Gästebuch",  "http://geocities.yahoo.com/gb/sign?member=markdde");  menu.addSubItem("Son", "Top Links", "Links",  "top_links.htm");  menu.addSubItem("Son", "Witze", "Witze",  "witze.htm" );  menu.addSubItem("Son", "Calvin und Hobbes", "Calvin",  "calivinundhobbes.htm" );

menu.addSubItem("sgt", "Take me tonight", "Take",  "songtext_take_me_tonight.htm");  menu.addSubItem("sgt", "Ab in den Süden", "Süden",  "songtext_ab_in_den_sueden.htm");  menu.addSubItem("sgt", "Skaterboy", "Skaterboy",  "songtext_skaterboy.htm");  menu.addSubItem("sgt", "Superstar", "Superstar",  "songtext_superstar.htm");

menu.showMenu(); } </SCRIPT>

<SCRIPT language=JavaScript> showToolbar(); </SCRIPT>

<SCRIPT language=JavaScript> function UpdateIt(){ if (ie&&keepstatic&&!opr6) document.all["MainTable"].style.top = document.body.scrollTop; setTimeout("UpdateIt()", 200); } UpdateIt(); </SCRIPT></>

  1. hallo Mark,

    an alle.Ich habe ein problem mit meiner Javascrpt Navigation

    Nun ja, das kommt dabei zustande, wenn man sich irgendwo ein Script besorgt und es ohne Verständnis ein bissel ummurkelt und dann für "fertig" hält.

    Es gibt auch Links zu Dateien in Unterordnern meiner Homepage und wenn ich da die Navigation einsetzte Suct er die Links im Unterordner was verständlich ist. WAs muss ich ändern das der Script nur auf die Dateien im Hauptordner zugreift?

    Vielleicht solltest du einfach bloß die korrekten Pfade angeben?

    Hier ist der Script

    Nein. Es heißt wirklich "das" Script. Und im übrigen: gar so gewaltig viel Quelltext ist nicht nötig. Es hätte gereicht, wenn du dich auf die _wesentlichen_ Teile deines Scripts beschränkt hättest. Jetzt kriegst du natürlich auch Reaktionen, die mit deiner Frage gar nichts zu tun haben, beispielsweise ist deine sehr eigenartige Großschreibung schon fragwürdig, es fehlt fast jedes Quoting, und dann:

    <META content="MSHTML 6.00.2800.1226" name=GENERATOR>

    Auweia. Was kann denn bei einem solchen "Generator" an validem HTML herauskommen?

    Noch schwieriger:

    <SCRIPT language=JavaScript>

    Korrekt wäre:
    <script type="text/javascript" language="javascript">

    Und dann das hier:

    if (document.all)    {n=0;ie=1;ns6=0;fShow="visible";fHide="hidden";}
    if (document.getElementById&&!document.all)    {n=0;ie=0;ns6=1;fShow="visible";fHide="hidden";}
    if (document.layers) {n=1;ie=0;ns6=0;fShow="show";fHide="hide";}

    das hältst du wirklich in dieser Form für nötig?

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      an alle tut mir leid mit dem Script ,aber:

      1.Ich habe diese Navigation nicht selbst geschrieben (wie ihr euch sicherlich denken könnt).

      2.Ich kenn mich mit Javascript nicht so gut aus(Bin gerade am lernen).

      3.Ich hätte schon sehr gerne eine Antwort auf meine Frage die mir weiter hilft.

      4. Bei mir klappt alles mit der Hand und so das ist ja keine Problem

      5.Ich habe die Navigation nur abgeändert für meinen Bedarf(Farben,Links,Text).

      Danke trotzdem an alle, aber gibts nichts was ich vor die Links oder so setzten kann(/..../ oder so)?

      by Mark

  2. Hallo Mark,

    Es gibt auch Links zu Dateien in Unterordnern meiner Homepage und wenn ich da die Navigation einsetzte Suct er die Links im Unterordner was verständlich ist. WAs muss ich ändern das der Script nur auf die Dateien im Hauptordner zugreift?

    Wenn ich das Knauderwelsch richtig verstehe solltest du auf die Seiten jeweils von Seitenroot aus zugreifen, also nicht href="unterseite/seite.html" sondern href="/unterseite/seite.html"

    Hier ist der Script:

    du erwartest doch hoffentlich nicht, dass sich jemand durch die 341 Zeilen Code wühlt, oder?

    nur noch 3 Sachen die mir aufgefallen sind:

    <META http-equiv=Content-Type content="text/html; charset=windows-1252">
    <STYLE>all.clsMenuItemNS {
     Z-INDEX: 100; FONT: bold 12px Arial; CURSOR: hand; COLOR: white; TEXT-DECORATION: none

    Respekt - drei Zeilen und schon drei Fehler:
    1. fehlt bei dem style-Element das type-Attribut
    2. gibt es kein html-Element all (du willst mit all.clsMenuItemNS alle all-Elemente, die ein class-Attribut mit dem Wert "clsMenuItemNS" haben, formatieren)
    3. "hand" ist kein gültiger Wert für cursor - du möchtest cursor:pointer; schreiben

    //Top Nav bar script v2- http://www.dynamicdrive.com/dynamicindex1/sm/index.htm

    das schein ja die Quelle des Scriptes zu sein - warum fragst du nicht dort nach?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hi,

      1. "hand" ist kein gültiger Wert für cursor - du möchtest cursor:pointer; schreiben

      Wenn man auch für IEs bis (mindestens) 5.5 schreiben möchte, muß man *beide* nehmen. Will man schludrigerweise nur die Mehrheit der gegenwärtigen Browser bedienen, muß es also "hand" sein.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!