Navigation funktioniert bei verschiedenen Browsern nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Navigation funktioniert bei verschiedenen Browsern nicht

    Hallo,

    ich habe nachfolgende einfache Navigation mit Java - und Dhtml-Elementen. Wenn man mit dem Mauszeiger über ein Navigationselement geht, dann sieht man ein rotes Dreieck daneben als bessere Kennzeichung was man gerade anklickt. Nun mein Problem: wie erreiche ich, daß diese Navigation bei allen Browsertypen funktioniert? Vielleicht geht ja diese Navigation auch ohne Java? (wäre mir am liebsten) oder muß man für jeden Browser eine Lösung anbieten? (nach entsprechender Browsererkennung). larr ist ein array mit den Link-infos.



    function create_menu(larr)
    {
    document.write("<table >");
    document.write("<tr><td class='item' onmouseover=\"objp.style.visibility ='visible';\" onmouseout=\"objp.style.visibility ='hidden';\" style='padding:10px 10px 10px; text-align:left;'>");
    for(i=0;i<larr.length;i++)
    {
    document.write("<a href='"+larr[i][1]+"' target='"+larr[i][2]+"'>"+larr[i][0]+"</a><br>");
    }
    document.write("</td></tr></table>")
    }
    document.write("<div style='position:absolute;top:0;visibility:hidden;left:10;' id=pointer><img src='bpointer.gif'></div>");
    var objp = document.getElementById("pointer")
    </script>

  • #2
    einfache Navigation mit Java - und Dhtml-Elementen
    JavaScript (darum handelt es sich bei deinem Script) ist nicht gleich Java!
    DHTML ist eher ein Modewort als eine Beschreibung einer Sprache.
    oder muß man für jeden Browser eine Lösung anbieten?
    Verschiedene Browser unterstützen andere Methoden,
    bsp.-weise document.getElementById kennt der meines Wissen der IE ab 5.x,
    Opera ab 5.x, Netscape ab 6.x/ Mozilla ab 0.6.
    Wenn dein Script auch mit dem alten IE 4 funktionieren soll
    müßtest Du dies Abfragen und mit document.all arbeiten ...
    Und weil das ja vgl.-weise easy wäre funktioniert die Zuweisung der
    sichtbarkeit/ unsichtbarkeit nicht bei allen Browsern gleich
    typische Marktanteile, damit Du die relevanz selbst entscheiden kannst:
    http://www.webhits.de/webhits/browser.htm
    Gruß
    Thomas

    Kommentar


    • #3
      Hallo Thomas,

      danke für deine Antwort. Ich habe nun nachfolgenden Weg eingeschlagen:
      Falls jemand keine Visibility unterstützt passiert gar nichts, da ich nun jeden roten Pfeil eines Navigationselementes auf hidden gesetzt habe. Mein Problem nun ist nur noch, daß diese Javascript-Funktion nur für das zweite Element greift und nicht für das Erste. Was läuft hier denn noch falsch?

      <script language="JavaScript1.2">
      function Visibility() {
      document.images["pointer"].style.visibility='visible';
      }
      function Hidden() {
      document.images["pointer"].style.visibility='hidden';
      }
      </script>


      <table >
      <tr><td class='item' onmouseover="javascript: Visibility();" onmouseout="javascript: Hidden();" text-align:left;'>
      <img name="pointer" src='bpointer.gif' style="visibility: hidden;"><a href="">Bauernhäuser</a><br>
      <img name="pointer" src='bpointer.gif' style="visibility: hidden;"><a href="" style="text-decoration: none;">Bauernhöfe</a><br>
      </td></tr></table>

      Kommentar


      • #4
        [list=1][*]Objekte müßen immer eindeutige Namen erhalten,
        und Du hast zweimal den Namen pointer vergeben...[*]Ich habe die Erfahrung gemacht das es ungünstig Funktionsnamen zu vergeben welche in irgendeiner Form bereits existieren (Methode/ Eigenschaft)[/list=1]
        <script language="JavaScript1.2">
        function zeigen(wo) {
        document.images[wo].style.visibility='visible';
        }
        function verbergen() {
        document.images[wo].style.visibility='hidden';
        }
        </script>

        <td class='item' onmouseover="java script: zeigen(a);" onmouseout="java script: verbergen(a);" text-align:left;'>
        <img name="a" src='bpointer.gif' style="visibility: hidden;">

        -> jetzt wird den Funktionen noch der Name des zuändernden Bildes
        mitgeteilt...
        Gruß
        Thomas

        Kommentar


        • #5
          es sind ja mehrere Navigationselemente mit den jweiligen images. Ist nun für jedes Images eine eigene Javascript-Funktion zu definieren, die dann die jeweiligen images ansprechen (mit hidden und visible) oder geht es mit einer einzigen Javascript-Funktion die dann mit einer zu definierenden Variable die verschiedenen images der Navigationselemente ansprechen?. Die ist mir noch nicht klar.

          Also z.B. so: oder kann man dies verkürzen mit einer Variablen?
          <script language="JavaScript1.2">
          function zeigen() {
          document.images["pointer1"].style.visibility='visible';
          }
          function verbergen() {
          document.images["pointer1"].style.visibility='hidden';
          }
          function zeigen() {
          document.images["pointer2"].style.visibility='visible';
          }
          function verbergen() {
          document.images["pointer2"].style.visibility='hidden';
          }
          </script>


          <table >
          <tr><td class='item' onmouseover="java script: zeigen();" onmouseout="java script: verbergen();" text-align:left;'>
          <img name="pointer1" src='bpointer.gif' style="visibility: hidden;"><a href="">Bauernhäuser</a><br>
          <img name="pointer2" src='bpointer.gif' style="visibility: hidden;"><a href="" style="text-decoration: none;">Bauernhöfe</a><br>
          </td></tr></table>

          Kommentar


          • #6
            die funktionen verbergen() und zeigen() zweimal zu definieren ist auf jeden fall mal blödsinn, dass sollte dir doch wohl einleuchten...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ok, ich versuche mein Problem nochmals nachfolgend auszudrücken. Kann ich das folgende verkürzen? oder muß ich für jedes images eines Navigationelementes, welches den Zusand visible oder hidden einnehmen kann, eine eigene JavaScript-Funktion wie nachfolgende definieren?

              <script language="JavaScript1.2">
              function zeigen1() {
              document.images["pointer1"].style.visibility='visible';
              }
              function verbergen1() {
              document.images["pointer1"].style.visibility='hidden';
              }
              function zeigen2() {
              document.images["pointer2"].style.visibility='visible';
              }
              function verbergen2() {
              document.images["pointer2"].style.visibility='hidden';
              }
              </script>

              <table >
              <tr><td class='item' onmouseover="java script: zeigen1();" onmouseout="java script: verbergen1();" text-align:left;'>
              <img name="pointer1" src='bpointer.gif' style="visibility: hidden;"><a href="">Bauernhäuser</a></td></tr>

              <tr><td class='item' onmouseover="java script: zeigen2();" onmouseout="java script: verbergen2();" text-align:left;'>
              <img name="pointer2" src='bpointer.gif' style="visibility: hidden;"><a href="" style="text-decoration: none;">Bauernhöfe</a><br>
              </td></tr>
              </table>

              Kommentar


              • #8
                nene, bist auf dem falschen Zug!
                function zeigen(wo) {
                document.images[wo].style.visibility='visible';
                }
                wenn man jetzt die Funktion mit
                java script: zeigen(a);
                aufruft erhält wo den Wet a, also wird das Bild mit dem Namen a angezeigt!

                Du brauchst also jede Funktion nur einmal, und übergibts der
                Funktion jeweils den Bildnamen
                Gruß
                Thomas

                Kommentar


                • #9
                  jetzt hab ich das auch verstanden, das spart ne Menge Arbeit, da a eine Konstante ist, hab ich a in 'a' gesetzt,

                  function zeigen(wo) {
                  document.images[wo].style.visibility='visible';
                  }
                  .........
                  javascript: zeigen('a');

                  und so funktionierts.
                  Danke nochmals für die Hilfe,

                  Gruß Ralf

                  Kommentar

                  Lädt...
                  X