Announcement

Collapse
No announcement yet.

eventhandler - onMouseOver = link in anderen frame

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • eventhandler - onMouseOver = link in anderen frame

    <b>Erstmal guten tag!</b><br><br>
    Ich bin gerade dabei, meine erste Website zu gestalten und stehe vor einem grossen Problem:<br><br>
    Auf meiner Startseite ist links eine linkleiste mit allen meinen Themen.
    Wenn man drauf klickt ist man direkt in der kategorie, aber ich möchte gerne noch eine kleine beschreibung von den kategorien in einem extraframe auf meiner startseite einbringen. und jetzt kommt mein problem::::::<br>
    ich möchte, dass, wenn ich mit der maus über einen link gehe, eine kleine beschreibung zu dieser kategorie in einem xtra frame haben! <br>
    und ich habe keine ahnung, wie der befehl "onMouseOver" witergeht, wenn ich da einen link hinterlegt haben will!!!
    das ist zwar alles etwas wirr, es würde mir aber seeeehhhr helfen, wenn mir irgendjemand einen tip geben könnte!
    danke schon mal im vorraus, derDuke

  • #2
    Ich bin zwar nicht sicher, ob ich alles richtig verstanden habe. Aber probier mal dies hier:
    <pre>
    &lt;a href="seiteXY.htm" onmouseover="showDescription()"&gt;Link&lt;/&gt;
    </pre>

    Dann brauchst du natürlich noch die entsprechende Funktion im JavaScript des Headers:
    <pre>
    function showDescription() {
    &nbsp;&nbsp;parent.frames["ExtraFramename"].document.location = "BeschreibungXY.htm";
    }
    </pre>

    So, das ist natürlich nur für den Fall, dass du die Beschreibungen als HTML-Seiten anzeigen lassen willst. Da es sich um Beschreibungen im Sinne des Wortes handelt (hoffe ich), sollte es mit der Methode kein Problem sein, denn bei blankem Text (und kurz gehalten) ist die Ladezeit der Seite akzeptabel.
    Erweitert werden müsste evtl. noch die "onmouseout"-Eigenschaft, die nach gleichem JavaScript-Muster vielleicht eine Leerseite lädt.

    Möglichkeit #2 sind dynamische Inhalte mit DIVs. Das Prinzip (s. "onmouseover") bleibt das selbe, nur der Zugriff ist anders. Aber: OPERA-User bleiben bei der Variante außen vor, es sei denn du definierst vorher <b>alle</b> Beschreibungen und machst auf Aufruf nur die entsprechenden DIVs sichtbar. Hm, also dann:
    <pre>
    &lt;a href="seiteXY.htm" onmouseover="showDescription('Tolle Beschreibung')"&gt;Link&lt;/&gt;
    </pre>

    Und im JavaScript:
    <pre>
    function showDescription(arg) {
    &nbsp;&nbsp;if(w3c && !ie4) { // Mozilla/Netscape6.x
    &nbsp;&nbsp;&nbsp;&nbsp;parent.frames["Extraframename"].document.getElementById('BeschreibungsDIV').inner HTML = arg;
    &nbsp;&nbsp;}
    &nbsp;&nbsp;else if(ie4) { // IE4 und höher
    &nbsp;&nbsp;&nbsp;&nbsp;parent.frames["Extraframename"].BeschreibungsDIV.innerHTML = arg;
    &nbsp;&nbsp;}
    &nbsp;&nbsp;else if(ns4) { // Netscape 4
    &nbsp;&nbsp;&nbsp;&nbsp;if(!Opera && !StarOffice) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent.fram es["Extraframename"].document.BeschreibungsDIV.document.write(arg);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent.fram es["Mitte"].document.MoviePack.document.close();
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;}
    </pre>

    So, jetzt noch die Browserversionen, die natürlich <b>vorher</b> definiert werden müssen ) :
    <pre>
    var ie4 = (navigator.userAgent.indexOf("MSIE") != -1 && navigator.appVersion.charAt(0) >= "4");
    var ns4 = (navigator.appName == "Netscape" && navigator.appVersion.charAt(0) == "4");
    var w3c = (document.documentElement);
    var Opera = (navigator.userAgent.indexOf("Opera") != -1);
    var StarOffice = (navigator.userAgent.indexOf("StarOffice") != -1);
    </pre>

    Du brauchst hierbei auf der Zielseite im Extraframe einen entsprechenden Div:
    <pre>
    &lt;html&gt; usw.
    &lt;body&gt;
    &lt;div id="BeschreibungsDIV" ...&gt;&lt;/div&gt;
    &lt;/body&gt;&lt;/html&gt;
    </pre>

    Die Ausklammerung "Opera" und "StarOffice" (nutzt diesen Browser eigentlich jemand?) ist nötig, weil sich insbesondere der Opera ja auch als Netscape tarnen kann.

    Wie gesagt: wenn du <b>alle</b> Beschreibungen <b>vorher</b> definierst, funktioniert´s auch im Opera, weil du den jeweiligen DIV nur noch sichtbar machen musst. Ansonsten geht´s in den angegebenen Versionen frameübergreifend, aber die einfachste Methode (die auch wieder im Opera funktioniert) ist die Idee mit den kleinen HTML-Seiten als Beschreibung.

    Fertig.
    )

    Mathias

    Comment


    • #3
      So, mit einem Anschauungsbeispiel ist´s vielleicht leichter:<br>
      http://www.reihe5.de/markus/index.htm<br><br>
      Da fällt dann auch nicht mehr so auf, dass in meinem Code ein kleiner Bug steckt (s. Netscape4-Anweisung: wenn ich in den "BeschreibungsDIV" reinschreibe, dann sollte ich <b>den</b> auch zumachen und nicht "MoviePack" ).<br><br>
      Gruß,<br>Mathias

      Comment

      Working...
      X