arafat: 2 frames und onmouseover

<SCRIPT LANGUAGE="JavaScript">
<!--
 hier steht ein Preload Script
// -->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!--

function ZweiFrames(URL1,F1,URL2,F2)
 {
  parent.frames[F1].location.href=URL1;
  parent.frames[F2].location.href=URL2;
 }

// -->
</SCRIPT>

...

<a href="javascript:ZweiFrames('a.html','Frame_a','b.html','Frame_b')"
    onMouseOver="changeImages('bild', 'bild_over.gif'); return true;"
    onMouseOut="changeImages('bild', 'bild1.gif'); return true;">
      <img name="bild" src="bild.gif" width=20 height=20 border=0></a>

so ähnlich sieht mein html code aus ....

jetzt das problem:

1.es sollen 2 frames gleichzeitig geändert werde (das klappt auch)
2.gleichzeitig soll auch bei onmouseover ein bild wechsel erscheinen(das klappt nicht mehr - ohne die href angabe javascript:ZweiFrame... klappts)

was mach ich denn falsch oder muss man das problem anders anfassen?

mfg

arafat

  1. Ich kann mir das auf Anhieb auch nicht erklären, außer daß man Javascript-Anweisungen in Ankern innerhalb der Funktion void() aufrufen sollte, also so:

    <a href="void(javascript:ZweiFrames('a.html','Frame_a','b.html','Frame_b'))"
        onMouseOver="changeImages('bild', 'bild_over.gif'); return true;"
        onMouseOut="changeImages('bild', 'bild1.gif'); return true;">
          <img name="bild" src="bild.gif" width=20 height=20 border=0></a>

    Das müßte schon helfen. Zusätzlich könntest Du die Mouseover- und Mouseout Anweisungen VOR das href setzen.

    mit besten Grüßen

    Willcox
    http://www.willcox.de

    1. Ich kann mir das auf Anhieb auch nicht erklären, außer daß man Javascript-Anweisungen in Ankern innerhalb der Funktion void() aufrufen sollte, also so:

      <a href="void(javascript:ZweiFrames('a.html','Frame_a','b.html','Frame_b'))"

      Kuddelmuddel. Im href-Attribut wird Javascript-Code durch "javascript:..." eingeleitet. Wenn dein Vorschlag irgendwie Sinn machen soll, wäre "javascript:void(ZweiFrames('a.html','Frame_a','b.html','Frame_b'));" korrekt.

      onMouseOver="changeImages('bild', 'bild_over.gif'); return true;"
          onMouseOut="changeImages('bild', 'bild1.gif'); return true;">
            <img name="bild" src="bild.gif" width=20 height=20 border=0></a>

      Das müßte schon helfen. Zusätzlich könntest Du die Mouseover- und Mouseout Anweisungen VOR das href setzen.

      Blödsinn, das bewirkt garnichts. Die Reihenfolge der Attribute ist irrelevant.

      - Sven Rautenberg

      http://www.nuhr.de/data/FRESSEHA.MP3 :)

      1. leider ergeben beide möglichkeiten keine lösung bei mir -

        wenn void benutz wird dann allerdings wirklich so wie Sven Rautenberg es sagte

        trotzdem vielen dank für den Versuch

        1. vielen dank für eure mühe!

          habe das ganze mal neu geschrieben und es klappt jetzt auf alle fälle - war warscheinlich irgend ein flüchtigkeits fehler - weiss der geier

          trotzdem vielen dank!

  2. Hallo Arafat

    <a href="javascript:ZweiFrames('a.html','Frame_a','b.html','Frame_b')"
        onMouseOver="changeImages('bild', 'bild_over.gif'); return true;"
        onMouseOut="changeImages('bild', 'bild1.gif'); return true;">
          <img name="bild" src="bild.gif" width=20 height=20 border=0></a>

    Probier mal, ausschliesslich mit Event-Handlern zu arbeiten. Der Code koennte dann lauten:

    <a href="#" onMouseOver="changeImages('bild', 'bild_over.gif'); return true;" onMouseOut="changeImages('bild', 'bild1.gif'); return true;" onClick="ZweiFrames('a.html','Frame_a','b.html','Frame_b')"><img name="bild" src="bild.gif" width=20 height=20 border=0></a>

    Ist jetzt aber nicht getestet - ich hab mir gerade einen Rechner neu eingerichtet und noch nicht die typischen Beispieldateien zum Ausprobieren auf der Platte, denn mir fehlt hier noch was, das ich mir jetzt mal saugen gehe ... SELFHTML ;-)

    viele Gruesse
      Stefan Muenz

  3. <SCRIPT LANGUAGE="JavaScript">
    <!--
    hier steht ein Preload Script
    // -->
    </SCRIPT>

    <SCRIPT LANGUAGE="JavaScript">
    <!--

    function ZweiFrames(URL1,F1,URL2,F2)
    {
      parent.frames[F1].location.href=URL1;
      parent.frames[F2].location.href=URL2;
    }

    // -->
    </SCRIPT>

    ...

    <a href="javascript:ZweiFrames('a.html','Frame_a','b.html','Frame_b')"
        onMouseOver="changeImages('bild', 'bild_over.gif'); return true;"
        onMouseOut="changeImages('bild', 'bild1.gif'); return true;">
          <img name="bild" src="bild.gif" width=20 height=20 border=0></a>

    1.: Du hast den Code für den Bildwechsel vergessen. Vermutlich nur vergessen zu posten, aber der gehört ja nunmal dazu. Und der Code zum Preloaden wäre unter Umständen auch interessant.

    Am besten hast du diese Seite mal irgendwo online, damit man gucken kann, was da schief läuft.

    2. In deinem Link sind so einige kleine Ungereimtheiten drin, die ich nicht eingebaut hätte:

    href - Am Ende mit Semikolon abschließen!
    onMouseOver - Warum "return true;"? Weg damit!
    onMouseOut - Genauso: Kein "return true;".

    3. Dir ist klar, daß dein per HTML eingebundenes Bild "bild.gif" heißt, beim Verlassen des Bereichs aber "bild1.gif" angezeigt wird, ja?

    Im Prinzip ist dein Ansatz richtig. Es kann sich nur noch um einen dummen Flüchtigkeitsfehler handeln, der noch nicht gepostet wurde, weil er irgendwo anders im Code steckt.

    Wie gesagt: Stell die Seite mal online, dann kann man mehr sagen.

    - Sven Rautenberg