Ziege2k: menübar mit javascript

also mein prob ist nicht so ganz einfach wenn es überhaubt geht!

ich habe eine menübar die in einem kleinen frame angezeigt wird.
ihr könnt euch das so vorstellen als ob man auf "datei" oder "bearbeiten" klickt.
mein prob bei der sache ist das diese javascript nicht über den darunterliegenden frame rollt,
sonder abgeschnitten wird.

hat jemand eine idee oder eine seite wo ich mir das anschauen oder nachlesen kann.

MFG Ziege2k

  1. Servus,
    falls ich Dich richtig verstanden habe werden Menueinträge beim dropdown der liste abgeschnitten, oder?
    lösung: verwende das window objekt! das wird nicht abgeschnitten und ist genauso dynamisch positionierbar!
    Gruß
    Hansjörg

    1. also das ist mein script aber ich hab keine idee wie du das mit dem window objekt meins!!!

      <script type="text/javascript">

      self.menuBar="no";

      var browser = new Browser();
      var activeButton = null;

      if (browser.isIE)
        document.onmousedown = pageMousedown;
      if (browser.isNS)
        document.addEventListener("mousedown", pageMousedown, true);

      function Browser() {

      var ua, s, i;

      this.isIE    = false;  // Internet Explorer
        this.isNS    = false;  // Netscape
        this.version = null;

      ua = navigator.userAgent;

      s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
          this.isIE = true;
          this.version = parseFloat(ua.substr(i + s.length));
          return;
        }

      s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
          this.isNS = true;
          this.version = parseFloat(ua.substr(i + s.length));
          return;
        }

      // Treat any other "Gecko" browser as NS 6.1.

      s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
          this.isNS = true;
          this.version = 6.1;
          return;
        }
      }

      function pageMousedown(event) {

      var el;

      if (!activeButton)
          return;

      if (browser.isIE)
          el = window.event.srcElement;
        if (browser.isNS)
          el = (event.target.className ? event.target : event.target.parentNode);

      if (el == activeButton)
          return;

      if (el.className != "menuButton"  && el.className != "menuItem" &&
            el.className != "menuItemSep" && el.className != "menu")
          resetButton(activeButton);
      }

      function buttonClick(button, menuName) {

      button.blur();

      if (!button.menu)
          button.menu = document.getElementById(menuName);

      if (activeButton && activeButton != button)
          resetButton(activeButton);

      if (button.isDepressed)
          resetButton(button);
        else
          depressButton(button);

      return false;
      }

      function buttonMouseover(button, menuName) {

      if (activeButton && activeButton != button) {
          resetButton(activeButton);
          if (menuName)
            buttonClick(button, menuName);
        }
      }

      function depressButton(button) {

      var w, dw, x, y;

      button.className = "menuButtonActive";

      if (browser.isIE && !button.menu.firstChild.style.width) {
          w = button.menu.firstChild.offsetWidth;
          button.menu.firstChild.style.width = w + "px";
          dw = button.menu.firstChild.offsetWidth - w;
          w -= dw;
          button.menu.firstChild.style.width = w + "px";
        }

      x = getPageOffsetLeft(button);
        y = getPageOffsetTop(button) + button.offsetHeight;
        if (browser.isIE) {
          x += 2;
          y += 2;
        }
        if (browser.isNS && browser.version < 6.1)
          y--;

      button.menu.style.left = x + "px";
        button.menu.style.top  = y + "px";
        button.menu.style.visibility = "visible";

      button.isDepressed = true;
        activeButton = button;
      }

      function resetButton(button) {

      button.className = "menuButton";

      if (button.menu)
          button.menu.style.visibility = "hidden";

      button.isDepressed = false;
        activeButton = null;
      }

      function getPageOffsetLeft(el) {
      return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
      }

      function getPageOffsetTop(el) {
      return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
      }

      </script>

      <!-- Menubar. -->

      <body topmargin="0" bgcolor="#FFFFFF" leftmargin="0">
      <div id="menuBar"

      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'auftragmenu');"
          onmouseover="buttonMouseover(this, 'auftragmenu');"

      <? print $aufgabenverwaltung_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'terminmenu');"
          onmouseover="buttonMouseover(this, 'terminmenu');"

      <? print $terminkal_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'faellmenu');"
          onmouseover="buttonMouseover(this, 'faellmenu');"

      <? print $faellig_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'fahrtenmenu');"
          onmouseover="buttonMouseover(this, 'fahrtenmenu');"

      <? print $kilomangabe1_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'tourmenu');"
          onmouseover="buttonMouseover(this, 'tourmenu');"

      <? print $tourangabe1_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'berichtmenu');"
          onmouseover="buttonMouseover(this, 'berichtmenu');"

      <? print $kbericht_sp; ?></a
      <a class="menuButton"

      href=""
          onclick="return buttonClick(this, 'infomenu');"
          onmouseover="buttonMouseover(this, 'infomenu');"

      <? print $infozent_sp; ?></a
      </div>

      <!-- Tags for the drop down menus. -->

      <div id="auftragmenu" class="menu">
      <a class="menuItem" href=../auftraege/kundenauswahl.php target=menu><? print $neueaufgabe_sp; ?>
      <a class="menuItem" href=../auftraege/wessenaendern.php target=menu><? print $aendernaufg_sp; ?></a>
      <div class="menuItemSep"></div>
      <a class="menuItem" href=../auftraege/wessenloeschen.php target=menu><? print $loeschaufgabe_sp; ?></a>
      <a class="menuItem" href="auftragkontrollemain.html" target=menu><? print $kontrollaufgabe_sp; ?></a>
      </div>

      <div id="terminmenu" class="menu">
      <a class="menuItem" href="../adminmenu/kalender.php" target=menu><? print $ansichtmonat_sp; ?></a>
      <a class="menuItem" href="<? print("../termine/woche.php?datum=".$datum."&mitarbeiter=".$mitarbeiter);?>" target=menu><? print $ansichtwoche_sp; ?></a>
      <a class="menuItem" href="<? print("../termine/tag.php?datum=".$datum."&mitarbeiter=".$mitarbeiter);?>" target=menu><? print $ansichttag_sp; ?></a>
      <div class="menuItemSep"></div>
      <a class="menuItem" href="<? print("../termine/neuertermin.php?mitarb=".$mitarbeiter."&datum=".$datum."&uhr=".$uhr);?>" target=menu><? print $neutermin_sp; ?></a>
      <a  class="menuItem" href="../urlaub/urlaubeintragen.php?beginnjahr=<? print date("Y",time());?>" target=menu><? print $eintragurlaub_sp; ?></a>
      <a class="menuItem" href="../krankheit/krankeintragen_mid.php" target=menu><? print $kranueber_sp; ?></a>
      <a class="menuItem" href=../termine/regelauswahl.php?mitarbeiter=<? print($mitarbeiter)?> target=menu><? print $regeltermine_sp; ?></a>
      <div class="menuItemSep"></div>
      <a class="menuItem" href="../termine/meeting.php" target="menu"><? print $planbesprech_sp; ?></a>
      </div>

      <div id="faellmenu" class="menu">
      <a class="menuItem" href=../auftraege/alarm.php target=menu><? print $faelligsehen_sp; ?></a>
      </div>

      <div id="fahrtenmenu" class="menu">
      <a class="menuItem" href=../fahrten/kilometer.php?mitarbeiter=<? print($mitarbeiter)?> target=menu><? print $kilomangabe2_sp; ?></a>
      <a class="menuItem" href=../fahrten/welcheaendern.php?mitarbeiter=<? print($mitarbeiter)?> target=menu><? print $kilomangabe3_sp; ?></a>
      </div>

      <div id="tourmenu" class="menu">
      <a class="menuItem" href=../tour/neuetour.php?mitarbeiter=<? print($mitarbeiter)?> target=menu><? print $tourangabe2_sp; ?></a>
      <a class="menuItem" href=../tour/welchenansehen.php?mitarbeiter=<? print($mitarbeiter)?> target=menu><? print $tourangabe3_sp; ?></a>
      </div>

      <div id="berichtmenu" class="menu">
      <a class="menuItem" href=../bericht/neuerbericht.php target=menu><? print $neukbericht_sp; ?></a>
      <a class="menuItem" href=../bericht/welchenansehen.php target=menu><? print $sehenkbericht_sp; ?></a>
      </div>

      <div id="infomenu" class="menu">
      <a class="menuItem" href=../kundenblatt/kunden-suche.php target=menu><? print $kundblattdruck_sp; ?></a>
      <div class="menuItemSep"></div>
      <a class="menuItem" href=../suche/volltextsuche.php target=menu><? print $volltext_sp; ?></a>

      </div>

      1. Hallo Ziege2k: Dein Problem sind die div tags. Diese werden bei Frames einfach abgeschnitten an der Stelle wo der Frame aufhört (oder der Frame wird rollbar, je nach Einstellung).

        -> Nimm statt den div tags für die untermenus window objekte, anders wird es nicht funktionieren, da andere Elemente nicht über Framegrenzen hinaus angezeigt werden können!

        Gruß
        Hansjörg

        1. -> Nimm statt den div tags für die untermenus window objekte, anders wird es nicht funktionieren, da andere Elemente nicht über Framegrenzen hinaus angezeigt werden können!

          und wie muss das dann aussehen

          ich prorammiere normal php also bitte ein bisschen genauer

          kannst du das so veränder das es funzt??

          <div id="auftragmenu" class="menu">
          <a class="menuItem" href=../auftraege/kundenauswahl.php target=menu><? print $neueaufgabe_sp; ?>
          <a class="menuItem" href=../auftraege/wessenaendern.php target=menu><? print $aendernaufg_sp; ?></a>
          <div class="menuItemSep"></div>

          ich brauche irgendwie mal ein beispiel

          MFG Ziege2k

  2. hi

    hat jemand eine idee oder eine seite wo ich mir das anschauen oder nachlesen kann.

    Nachlesen kannst du diese Problematik zu hauf im archiv.

    Tipp: Die scripte müssen in dem Frame definiert werden in dem sie dargstellt werden.

    so long
    ole
    (8-)>

    --
    Vegetables? Yes,...for example garlic!
    1. Tipp: Die scripte müssen in dem Frame definiert werden in dem sie dargstellt werden.

      das hab ich ja schon ausprobiert aber das geht in meinem fall nicht da ich nicht nur einen frame habe sonder 3 und 2 under dem menü sind!!

      MFG zeige2k

      1. hi

        das hab ich ja schon ausprobiert aber das geht in meinem fall nicht da ich nicht nur einen frame habe sonder 3 und 2 under dem menü sind!!

        vieleicht solltest du dein konzept überdenken.

        so long
        ole
        (8-)>

        ps: wie gesagt, recherchiere im archiv nach der problematik.

        --
        Vegetables? Yes,...for example garlic!