Mathias Beyer: Referenz Probleme

Hallo,

ich habe ein Problem. Ich will einen JavaScript Verweis erstellen. Hier zu den Quellcode mit Position Weis nicht ob das relevant ist.

  
<div style="position: absolute; top: -40; left: -20; width: 105; height: 105;" align="center" valign="middle">  
   <a id="nav1" border="0" alt=""  
    onMouseOver="javascript: hover(1); Javascript: stopAnim();"  
    onMouseOut="JavaScript: anim();"  
    href="kontakt.htm">  
   <img src="../images/b_ufo.gif" height="110" width="110"></a>  
</div>  

Ich hab den Script auf eine JS-Datei verwiesen aber das ist dem Browsern schnuppe. Selbst wenn ich den Script intern mache funktionierts net.

  
function hover(x) {	  
  if (x == 0) {  
    document.all.nav1.innerHTML = '<img src="../images/b_ufo_h.gif" height="110" width="110">';  
    document.all.nav2.innerHTML = '<img src="../images/b_futur.gif" height="100" width="100">';  
    document.all.nav3.innerHTML = '<img src="../images/b_news.gif" height="120" width="120">';  
    document.all.nav4.innerHTML = '<img src="../images/b_work.gif" height="125" width="125">';  
    document.all.nav5.innerHTML = '<img src="../images/b_f3.gif" height="90" width="90">';  
					  
    document.getElementById("hint").style.visibility = "hidden";  
    document.all.display.innerHTML = "";  
    };  
  
  if (x == 1) {  
    document.all.nav1.innerHTML = '<img src="../images/b_ufo_h.gif" height="110" width="110">';  
    document.all.nav2.innerHTML = '<img src="../images/b_futur.gif" height="100" width="100">';  
    document.all.nav3.innerHTML = '<img src="../images/b_news.gif" height="120" width="120">';  
    document.all.nav4.innerHTML = '<img src="../images/b_work.gif" height="125" width="125">';  
    document.all.nav5.innerHTML = '<img src="../images/b_f3.gif" height="90" width="90">';  
					  
    document.getElementById("hint").style.visibility = "hidden";  
    document.all.display.innerHTML = "";  
    };  
};  

Der Image wechsel funktionier einwandfrei aber der Verweis nicht. Selbst wenn ich den Verwewis auf JavaScript Basis verwende

  
document.location.href = 'kontakt.htm';  

macht der Browser nix. Könnt ihr mir bei diesem klein großen Problem helfen?
Schon mal Danke im vorraus.

Mathias Beyer

  1. Mahlzeit Mathias Beyer,

    ich habe ein Problem. Ich will einen JavaScript Verweis erstellen.

    Was ist ein "JavaScript Verweis"?

    <a id="nav1" border="0" alt=""
        onMouseOver="javascript: hover(1); Javascript: stopAnim();"
        onMouseOut="JavaScript: anim();"
        href="kontakt.htm">

    <http://de.selfhtml.org/html/referenz/attribute.htm#a@title=Ein Link hat kein "alt"-Attribut>, Attributsnamen wie "onmouseover" o.ä. solltest Du im Hinblick auf XHTML-Konformität und bessere Lesbarkeit immer klein schreiben und <http://de.selfhtml.org/http://nt-iis01/selfhtml/html/referenz/attribute.htm#a@title=Attributswerte von Eventhandlern> (wie "onmouseout" o.ä.) beinhalten bereits Javascript-Code ... ein Pseudoprotokoll wie "javascript:" ist erstens überflüssig und zweitens falsch. Insbesondere ist es sinnfrei, es mehrfach anzugeben.

    Ich hab den Script auf eine JS-Datei verwiesen aber das ist dem Browsern schnuppe. Selbst wenn ich den Script intern mache funktionierts net.

    Was verstehst Du unter "den Script auf eine JS-Datei verwiesen"? Achja: "funktioniert nicht" funktioniert nicht.

    document.all.nav1.innerHTML = '<img src="../images/b_ufo_h.gif" height="110" width="110">';

    Dein Javascript soll <http://de.selfhtml.org/objekte/all.htm@title=nur im IE> laufen?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Lieber Ekki,

      satimmmt das ist mir noch garnicht aufgefallen das alt attribut nur im Image funktionieren und nicht im Link.

      JavaScript verweis "document.location.href" habe ich verworfen und stattdessen einen nur n Html verweis <a href="">...</a> verwendet

      Das OnMouseOut und onMouseOver habe ich nur zum Bildwechsel verwendet und kommischer weise wenn ich das aus dem HTML Quellcode rauslasse funktioniert der verweis wieder. Das Checke ich net.

      und das document.all.nav1.innerHTML ist nicht von  bedeutung. ich weis das das nur bei IE oder bei anderen Neueren Biowsern funktioniert.

      Kannst du mir weiterhelfen  helfen

      Mathias

      1. Mahlzeit Mathias Beyer,

        JavaScript verweis "document.location.href" habe ich verworfen und stattdessen einen nur n Html verweis <a href="">...</a> verwendet

        Was verstehst Du unter einem "JavaScript verweis"?

        Das OnMouseOut und onMouseOver habe ich nur zum Bildwechsel verwendet und kommischer weise wenn ich das aus dem HTML Quellcode rauslasse funktioniert der verweis wieder. Das Checke ich net.

        Ich auch nicht. Und zwar solange nicht, bis Du eine vernünftige Fehlerbeschreibung lieferst: "funktioniert (nicht/wieder)" funktioniert eben nicht!

        und das document.all.nav1.innerHTML ist nicht von  bedeutung. ich weis das das nur bei IE oder bei anderen Neueren Biowsern funktioniert.

        Aha. Und Du erwartest also von Deinen Lesern, dass sie einen IE haben, damit sie Dein Code-Beispiel nachvollziehen und testen können?

        Kannst du mir weiterhelfen  helfen

        Nur wenn Du erstmal mir hilfst, Dich zu verstehen (und Dir dabei selbst vielleicht auch hilfst) ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo,

          tut mir leid ich leide seit etwa 6 Jahren  an Sprachstörungen und ich dachte das fällt nicht so auf. Bitte Entschuldige für meine Ausdrucksweise, es fällt mir schwer mich besser auszudrücken

          1. Mahlzeit Mathias Beyer,

            tut mir leid ich leide seit etwa 6 Jahren  an Sprachstörungen und ich dachte das fällt nicht so auf.

            Das tut mir leid - das konnte ich nicht wissen. Was ich jedoch mit meiner beharrlichen Nachfrage, was Du unter einem "JavaScript Verweis" verstehst, meinte: so etwas gibt es nicht. Jedenfalls nicht unter diesem Fachbegriff. Was also verstehst Du darunter?

            Es ist wahnsinnig hilfreich, wenn man die gleichen Begriffe für die gleichen Dinge benutzt - dann gibt es keine Missverständnisse. Deswegen ist es sinnvoll, wenn Du Dir die Mühe machst, Dir die jeweiligen Fachbegriffe für die Dinge, die Du benennen willst, anzueignen. Dann wissen Deine Leser auch, was Du meinst und können Dir viel schneller und besser helfen.

            Bitte Entschuldige für meine Ausdrucksweise, es fällt mir schwer mich besser auszudrücken

            Es geht nicht darum, dass mir Deine Ausdrucksweise nicht gefällt - es ist Deinen Lesern (zumindest den meisten davon) schlicht und ergreifend nicht möglich, in Deinen Kopf, auf Deinen Bildschirm oder in eine funktionierende Glaskugel zu schauen, um zu verstehen, was Dein Problem ist. Du MUSST eine vernünftige Problembeschreibung liefern, wenn Du (qualifizierte) Hilfe bekommen möchtest ... anders funktioniert es nicht. Und "funzt net!" in allen seinen Ausprägungen ist eben keine hilfreiche Fehlerbeschreibung (ich habe versucht, Dir das durch mehrmaliges Verlinken der Charta zu verdeutlichen).

            Wenn Du Deine Leser zum Raten zwingst, wird nur mit viel Glück genau die richtige Antwort dabei herauskommen.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    2. <http://de.selfhtml.org/http://nt-iis01/selfhtml/html/referenz/attribute.htm#a@title=Attributswerte von Eventhandlern> (wie "onmouseout" o.ä.) beinhalten bereits Javascript-Code ... ein Pseudoprotokoll wie "javascript:" ist erstens überflüssig und zweitens falsch. Insbesondere ist es sinnfrei, es mehrfach anzugeben.

      »javascript:« wird in diesem Kontext als Label aufgefasst. Es ist überflüssig, aber nicht falsch (oder wie meintest du das?). Das ist gerade die Crux bei dieser Schreibweise: Es scheint zu funktionieren, weil es ECMAScript zulässt, aber die Wirkung ist natürlich eine ganz andere, als vom Scriptautor beabsichtigt - es wird nur ein Label angelegt, was nichts weiteres tut. Weil Labels dermaßen Voodoo-fähig sind und man alles in sie projizieren kann, hält sich dieses Missverständnis wohl auch so hartnäckig. ;)

      bitte_funktioniere: funktion();
      GottStehMirBei: funktion();

      Mathias

      1. Hallo Namensvetter,

        ich bitte euch nur auf den verweis zu achten. Wenn ich aus dem <a>-Tag onMouseOver und onMouseOut weg lasse funktioniert der Verweis wieder. nur ich will das Image Wechsel bei behalten.

        Mathias

        1. Mahlzeit Mathias Beyer,

          ich bitte euch nur auf den verweis zu achten. Wenn ich aus dem <a>-Tag onMouseOver und onMouseOut weg lasse funktioniert der Verweis wieder.

          Kein Wunder - dann ist ja auch die Syntax richtig.

          nur ich will das Image Wechsel bei behalten.

          Dann solltest Du Dich vielleicht mal darum kümmern, dass der Javascript-Code auch korrekt ist. Das Thema "document.all" hatte ich bereits angesprochen. Zusätzlich ist es keine gute Idee, ein Element wie eine Javascript- bzw. in diesem Fall sogar CSS-Eigenschaft zu benennen ("display").

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        2. Hi,

          ich bitte euch nur auf den verweis zu achten. Wenn ich aus dem <a>-Tag onMouseOver und onMouseOut weg lasse funktioniert der Verweis wieder.

          Dann solltest du zuerst mal in die JS-Fehlerkonsole eines vernünftigen Browsers wie bspw. FireFxo schauen.

          nur ich will das Image Wechsel bei behalten.

          Der liesse sich auch per CSS realisieren.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
        3. Ok Danke ihr beide,

          jetzt verstehe ich ein wenig. Danke.
          Ich müsste nur noch herrausfinden wie man document.all.nav1.innerHTML ander mit dem gleichen effekt macht eventuell könntet ihr bei meinem Problem helfen.

          1. Mahlzeit Mathias Beyer,

            Ich müsste nur noch herrausfinden wie man document.all.nav1.innerHTML ander mit dem gleichen effekt macht eventuell könntet ihr bei meinem Problem helfen.

            Dabei könnte Dir http://de.selfhtml.org/javascript/objekte/all.htm@title=SELFHTML helfen: <http://de.selfhtml.org/dhtml/modelle/index.htm@title=Die verschiedenen DHTML-Modelle>

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. Hi,

            Ich müsste nur noch herrausfinden wie man document.all.nav1.innerHTML ander mit dem gleichen effekt macht

            document.all ist eine MicroSoft-Erfindung, um Zugriff auf HTML-Elementobjekte zu bekommen.
            Diesen kann man browserübergreifend auch auf vielfältigen anderen Wegen erreichen - z.B. über document.getElementById, getElementsByTagName, etc. pp.
            http://de.selfhtml.org/javascript/objekte/node.htm#allgemeines beschreibt ein paar dieser Methoden.

            Dass du hier überhaupt mittels Zugriff auf die innerHTML-Eigenschaft die kompletten IMG-Elemente austauschst, ist aber eigentlich überflüssig. Es würde vollkommen ausreichen, jeweils nur die Quellenangabe der Bilder auszutauschen (vorausgesetzt, die Maße bleiben jeweils gleich, aber das scheint ja nach deinem Code der Fall zu sein).
            Das Anwendungsbeispiel Dynamische grafische Buttons macht vor, wie's geht.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
            1. Danke ChrisB,
              MfG
              Mathias

          3. besten Dank ihr wart mir eine besondere Hilfe.
            Arbeite an futur3.net von schüler für schüler. is noch net fertig aber es währe mir eine Ehre wen du später vorbei schauen würdestei meinem Problem helfen.