Jeena Paradies: Fehler beim einfügen eines Ankers

Hallo,

Ich versuche mittels JavaScript einen Zurück Link zu erzeugen. Dabei gibt mir Mozilla folgenden Fehler aus:

Error: uncaught exception: [Exception... "Node was not found" code: "8" nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)" location: "http://domain.dev/scripts/javascripts.js Line: 11"]

Datei javascripts.js

window.onload = function () {  
  var produkt = document.getElementById("produkt");  
  if( ! produkt ) return;  
  var bestellung = document.getElementById("bestellung");  
  if (!document.getElementById || !document.createElement || !document.createTextNode) return;  
  var a = document.createElement("a");  
  a.setAttribute("href", "javascript:history.back()");  
  var text = document.createTextNode("Zurück");  
  a.appendChild(text);  
  if (bestellung.insertBefore) {  
   document.getElementById("produkt").insertBefore(a, document.getElementById("bestellung"));  
  }  
}

Datei index.html

<html>  
 <head>  
  <script type="text/javascript" src="javascripts.js"></script>  
 </head>  
 <body id="produkt">  
  <p>  
   <a href="/bestellen.php" id="bestellung">Zur Bestellung</a>  
  </p>  
 </body>  
</html>

Worin liegt der Fehler?

Grüße
Jeena Paradies

--
Nichts ist besser als Bass!
  1. Hi!

    Worin liegt der Fehler?

    Wenn ich das rechtz geshen habe, willst du VOR <body> etwas einfügen. Ich weiß allerdings nciht, inwiefern das ein Problem darstellt...

    Gruß

    Martin

    P.S.: Warum sind heute alle meine Postings scheinbar unsauber?

    1. Hallo,

      Wenn ich das rechtz geshen habe, willst du VOR <body> etwas einfügen. Ich weiß allerdings nciht, inwiefern das ein Problem darstellt...

      Nein eigentlich will ich das nicht, ich will eigentlich vor den Link <a href="bestellen.php" id="bestellung">Zur Bestellung</a> diesen JavaScript Zurück Link reinmachen. Wenn ich das geschafft habe will ich später auch noch einen optischen Trenner dazwischen reinfriemeln, es soll dann ungefähr so aussehen:

        
      <p>  
        <a href="javascript:history.back()">Zurück</a>  
        |  
        <a href="bestellen.php" id="bestellung">Zur Bestellung</a>  
      <p>  
      
      

      bzw. so:       Zurück | Zur Bestellung

      Grüße
      Jeena Paradies

      --
      Nichts ist besser als Bass!
  2. Hi,

    document.getElementById("produkt").insertBefore(a, document.getElementById("bestellung"));

    
    >   
    > ~~~html
      
    
    > <body id="produkt">  
    >   <p>  
    >     <a href="/bestellen.php" id="bestellung">Zur Bestellung</a>  
    >   </p>  
    > </body>  
    > 
    
    

    Worin liegt der Fehler?

    in <body id="produkt"> existiert kein <a id="bestellung">.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      in <body id="produkt"> existiert kein <a id="bestellung">.

      Ach so, hm jetzt so langsam fange ich an zu verstehen. ich muss also noch irgendwie das <p> reinbringen? Hast du einen Tipp für mich wie ich das mache?

      Grüße
      Jeena Paradies

      --
      Nichts ist besser als Bass!
      1. Hi,

        in <body id="produkt"> existiert kein <a id="bestellung">.
        Ach so, hm jetzt so langsam fange ich an zu verstehen. ich muss also noch irgendwie das <p> reinbringen? Hast du einen Tipp für mich wie ich das mache?

        Hol Dir das Element mit der ID Bestellung und nimm dann dessen Elternelement.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hallo,

          Hol Dir das Element mit der ID Bestellung und nimm dann dessen Elternelement.

          Ah genau dieser Gedankengang hat mir gefehlt, vielen Dank.

          Jetzt will ich versuchen den Text innerhalb der Anführungszeichen noch zwischen die zwei Links einzufügen, also: " | " damit ich einen optischen Trenner habe. Wie wird das ding dann bezeichnet? Schaffen würde ich es ein <span> | </span> einzufügen, aber wie bekomme ich einfachen Text da zwischen rein?

          Grüße
          Jeena Paradies

          --
          Nichts ist besser als Bass!
          1. Hi,

            Hol Dir das Element mit der ID Bestellung und nimm dann dessen Elternelement.
            Ah genau dieser Gedankengang hat mir gefehlt, vielen Dank.

            Jetzt will ich versuchen den Text innerhalb der Anführungszeichen noch zwischen die zwei Links einzufügen, also: " | " damit ich einen optischen Trenner habe. Wie wird das ding dann bezeichnet? Schaffen würde ich es ein <span> | </span> einzufügen, aber wie bekomme ich einfachen Text da zwischen rein?

            Wozu das span? Ein einfacher textNode reicht doch.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. Hallo,

              Wozu das span? Ein einfacher textNode reicht doch.

              Ach ja stimmt createTextNode() habe ich ja auch schon einmal oben drüber benutzt, das muss anscheinend dann genau so gehen, denn es funktioniert jetzt ;-) Die ganzen Begriffe sind noch etwas unbekannt, scheinen aber ziemlichen Sinn zu machen so viel ich das bisher verstehe.

              Grüße
              Jeena Paradies

              --
              Nichts ist besser als Bass!
          2. Hi,

            Jetzt will ich versuchen den Text innerhalb der Anführungszeichen noch zwischen die zwei Links einzufügen, also: " | " damit ich einen optischen Trenner habe.

            möchtest Du nicht lieber einen border verwenden? :-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallo,

              möchtest Du nicht lieber einen border verwenden? :-)

              Ich weiß noch nicht so recht, mir stellt sich die Frage: gibt es Textbrowser mit JavaScript Support, die aber kein CSS Border anzeigen können?

              Grüße
              Jeena Paradies

              --
              Nichts ist besser als Bass!
              1. Hi,

                Ich weiß noch nicht so recht, mir stellt sich die Frage: gibt es Textbrowser mit JavaScript Support, die aber kein CSS Border anzeigen können?

                ersetze "Textbrowser" durch "nicht-CSS-Browser", dann lautet die Antwort ja - denn CSS lässt sich abschalten. Die eigentliche Frage lautet dann: Na und? ;-)

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. Hallo,

                  ersetze "Textbrowser" durch "nicht-CSS-Browser", dann lautet die Antwort ja - denn CSS lässt sich abschalten. Die eigentliche Frage lautet dann: Na und? ;-)

                  Ich muss gestehen, genau das hebe ich mich ca. eine Sekunde nachdem ich auf »Nachricht absenden« gedrückt habe auch gefragt ;-)

                  Grüße
                  Jeena Paradies

                  --
                  Nichts ist besser als Bass!
                  1. Hi,

                    Na und? ;-)
                    Ich muss gestehen, genau das hebe ich mich ca. eine Sekunde nachdem ich auf »Nachricht absenden« gedrückt habe auch gefragt ;-)

                    Dein Gefühl spricht für Dich, junger Skywalker *g*

                    Cheatah

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                2. Hallo,

                  Ich weiß noch nicht so recht, mir stellt sich die Frage: gibt es Textbrowser mit JavaScript Support, die aber kein CSS Border anzeigen können?
                  ersetze "Textbrowser" durch "nicht-CSS-Browser", dann lautet die Antwort ja - denn CSS lässt sich abschalten. Die eigentliche Frage lautet dann: Na und? ;-)

                  Ersetze "optischer Trenner" durch "logischer Trenner", dann lautet _die_ Antwort: Dann, sprich ohne CSS, gäbe es keinen Trenner, außer einem whitespace, mehr zwischen den Links. Das könnte man als nicht so optimal betrachten. In einer Aufzählung von Links sollten die einzelnen Links durch einen Trenner separiert sein.

                  viele Grüße

                  Axel

  3. Hallo,

    document.getElementById("produkt").insertBefore(a, document.getElementById("bestellung"));

    Verwende
    bestellung.parentNode.insertBefore(a,bestellung);

    Hinweis: Das erneute getElementById() ist nicht noetig, das die Objektvariable bestellung bereits existiert.

    MfG, Thomas

    1. Hallo,

      Hinweis: Das erneute getElementById() ist nicht noetig, das die Objektvariable bestellung bereits existiert.

      Danke für den Tipp, damit verstehe ich JavaScript um eine Stufe mehr. War ja für mich bisher immer ein Buch mit sieben Siegeln. Aber irgendwann muss man mal anfangen daran zu arbeiten.

      Grüße
      Jeena Paradies

      --
      Nichts ist besser als Bass!