jenskie: Warum funkioniert mein Javascript nicht im Opera?

Hallo, ich möche bei mouseover der Ebene "info", die Ebene "text" einblenden. Das funkioniert im I.E und im Firefox. Aber warum nicht im Opera? Das Script hab ich aus Dreamweaver genommen, da ich nur kleine Grundkenntnisse im Progammieren hab, und kein Javascript kann. Kann mir jemand weiterhelfen?

<div id="text">
<img src="../img/texte/text_diplom.gif" width="102" height="68" alt=""></img>
</div>

<div id="info">
<a href="javascript:;" onmouseover="MM_showHideLayers('text','','show')" onmouseout="MM_showHideLayers('text','','hide')">
<img src="../img/info.gif" width="32" height="7" alt="">
</img>
</a>
</div>

  1. Lieber jenskie,

    was ist bitteschön das hier?

    <img src="../img/texte/text_diplom.gif" width="102" height="68" alt=""></img>

    Wenn Du HTML4 schreibst, dann lasse das </img> weg! Bei XHTML schreibst Du bitte am Ende des IMG-Elements "/>"! Nimm am Besten gleich die letztere Schreibweise:
    <img src="../img/texte/text_diplom.gif" width="102" height="68" alt="" />

    ich könnte mir vorstellen, dass Opera das hier nicht mag:

    <a href="javascript:;"

    Nimm als Verweisziel doch href="javascript:void(0);"!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  2. Hallo,

    Kann mir jemand weiterhelfen?

    Wenn Du den JS-Code dazu postest, vielleicht :)

    Sei's drum:
    Wenn Du Deine angegebene Seite meinst - die funktioniert doch im Opera! (Opera 8.5x)

    Ich sehe bei allen Begriffen beim Hover ein Symbol.

    Viele Grüße,
    Jörg

    1. Vielen Dank für die schnelle Antwort! Ja es ist www.alexotica.de

      Ich sehe bei allen Begriffen beim Hover ein Symbol.

      was für ein Symbol?

      Wenn man über "info" bei diplom_1.html geht muss die Bildinformation "Alice im Wunderland" usw. angezeigt werden. Habe beim Opera alle Javascript-optionen eingeschaltet, aber bei mir läufts nicht!
      Der Javascript-code aus Dreamweaver ist echt lang und lautet:

      function MM_findObj(n, d) { //v4.01
        var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
          d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
        if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
        for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
        if(!x && d.getElementById) x=d.getElementById(n); return x;
      }

      function MM_showHideLayers() { //v6.0
        var i,p,v,obj,args=MM_showHideLayers.arguments;
        for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
          if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
          obj.visibility=v; }
      }

      1. hi,

        Der Javascript-code aus Dreamweaver ist echt lang

        Ja, und umständlich, schlecht wartbar, schlecht zu verstehen - zusammengefasst, beschissen.

        Du solltest dich mit Javascript zumindest soweit beschäftigen, dass du solche simplen Sachen selber erstellen kannst - und nicht auf den aufgeblähten Unsinnscode, den dir irgendein Programm automatisch generiert, angewiesen bist.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hell-O!

        Wenn man über "info" bei diplom_1.html geht muss die Bildinformation "Alice im Wunderland" usw. angezeigt werden. Habe beim Opera alle Javascript-optionen eingeschaltet, aber bei mir läufts nicht!

        Was jedoch nur Opera 9 betrifft, alle anderen Browser zeigen es so an, wie es soll. Das Javascript funktioniert schlicht und ergreifend nicht unter Opera 9, entweder du kannst damit leben oder du schreibst es neu.

        Siechfred

        --
        Ich bin strenggenommen auch nur interessierter Laie. (molily)
        Kabelkuddelmuddel || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.
        1. Danke! Stimmt. Ich habe den Opera 9. Kann erst mal ein paar Tage damit leben. Und wenn dann mehr Zeit ist versuche ich javascript selber zu machen.

          Gruss Jenni

          1. Liebe(r) jenskie,

            wie gefällt Dir denn mein Anfang mit einer selbstgebauten Funktion?

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

      3. Lieber jenskie,

        möchtest Du für Deine Zwecke nicht einen viel schlankeren Code selbst programmieren? Das Forum ist in solchen Fällen eine ideale Hilfe, wenn Du bei diesem Unterfangen irgendwo hängen bleiben solltest...

        Ich mache schoneinmal den Anfang, ok?

        // Der Einfachheit halber definiere ich gleich ein Objekt als "Sammelcontainer" der Funktionen  
          
        var LayerManager = new Object();  
          
        // Dieses Objekt erhält eine Funktion zum Anzeigen des gewünschten Layers  
        LayerManager.show = function (myLayerId) {  
            // Das Element über die ID ermitteln  
            var elm = document.getElementById(myLayerId);  
          
            if (!elm) {  
                // Nicht gefunden? -> Beenden!  
                return false;  
            } else {  
                // doch, gefunden!  
                elm.style.display = "block"; // vielleicht sollte hier nicht unbedingt "block" stehen...  
            };  
          
        // Und nun eine Funktion zum Verbergen eines Layers  
        LayerManager.hide = function (myLayerId) {  
            // das hier schaffste selber, oder?  
        };
        

        Benutzung wäre dann so:
        <a href="javascript:LayerManager.hide('test')">verbergen</a> | <a href="javascript:LayerManager.show('test')">anzeigen</a>

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.