Markus: id.toString() Funktion unter NS 4.x

function test(id)
  {
   var wertB=id.toString(10);
   ...
  }

Weshalb wird die oben genannte Funktion nicht in Netscape 4.7 ausgeführt. Und jetzt bitte keine Kommentare das Netscape überholt ist, leider muss ich meine Aufgabe auch NS 4.x konform machen.

THX

  1. Hi,

    function test(id)
      {
       var wertB=id.toString(10);
       ...
      }

    der folgende Test klappt auch im PC-Nc4 einwandfrei:
    --------
    <html><head><script language="javascript" type="text/javascript">
    var val =  00100101001;
    var bas =  10;
    function test(val,bas) {
     alert(val.toString(bas));
    }
    test(val,bas);
    </script></head><body>test</body></html>
    --------
    Dein Fehler muss woanders liegen. Uebergibst Du ueberhaupt eine Number?

    Gruesse  Joachim

    1. for(tableloopA=0; tableloopA<100; tableloopA++){

      ...

      document.write("<a href='#' id='"+ branchnumb[tableloopA] +"' onClick='test(this.id)' class='link'>"
      +              fil[tableloopA]+"</a></td>");

      ...

      Also das hier oben ist meine Übergabe Funktion, habe auch gesehen, das der Fehler wohl an der Stelle mit dem onKlick(...) bzw. der ID liegt. Wie kann ich das ganze umwurschteln, dass das ganze auch in NS funzt?

      Danke.

      1. Hi,

        id='"+ branchnumb[tableloopA] +"'

        ^^^^
        Hier schreibst Du Hochkommas mit rein, und machst branchnumb[tableloopA] zum String (was auch immer da drinnesteht)

        onClick='test(this.id)'

        und dieser String steht dann auch in this.id.
        Deine weitere Vorgehensweise haengt nun davob ab, was Du mit toString eigentlich machst, denn einen String brauchst Du damit wohl kaum zu behandeln.

        Gruesse  Joachim

        1. Das ist ja wunderbar das das gleich schon ein String ist, ist mir gar nicht aufgefallen. Fakt ist allerdings das im IE der Wert übergeben wird und im NS4.7 bekomme ich wenn ich mir den Übergabewert anzeigen lassen will ein undefined.

          1. Hi,

            Fakt ist allerdings das im IE der Wert übergeben wird und im NS4.7 bekomme ich wenn ich mir den Übergabewert anzeigen lassen will ein undefined.

            Das liegt vermutlich daran, dass Nc 4x Links nicht ueber eine ID referenzieren kann. Du kannst nur ueber die Indexnummer referenzieren, oder im onclick mit this das ganze Linkobjekt uebergeben. Also: Nc 4x kennt document.links[0] (erster Link im document!), nicht aber document.links["linkid"].

            Gruesse  Joachim

            1. Problem ist eben, das ich eine Nummer übergeben muss, ob jetzt als String oder nicht ist egal.

              wenn ich dann die Nummer in den href schreiben soll?!? und den link übergeben soll, wie bekomme ich es dann hin das eben nur die nummer und nicht noch der ganze http sch*** davor mit übergeben wird, bzw. wie kann ich es am besten anstellen das einen Nummer übergeben wird. ich stehe jetzt etwas aufm Schlauch, wenn du mir ein kurzes bsp. geben könntest, wäre ich Dir sehr dankbar. Weil diese Konstruktion hier macht keinen Sinn:

              document.write("<a href='"+branchnumb[tableloopA]+"' onClick='uebergabe(this.href)' class='link'>"+branchname[tableloopA]+"</a></TD></TR>");

              1. Hi,

                Problem ist eben, das ich eine Nummer übergeben muss, ob jetzt als String oder nicht ist egal.

                Zunaechst mal stellt sich mir jetzt die Frage, warum Du toString benutzt hast. Javascript konvertiert Typen automatisch, wenn Du also mit var x = 1234 folgendes machst: x += "" , dann hast Du einen String.

                Nun zum Problem: Wenn Du Nc beruecksichtigen musst, kannst Du folgendermassen kompliziert vorgehen. Das return false schaltet den html-Link ab:

                <html>
                <head>
                <script language="javascript" type="text/javascript">
                function test(id) {
                    for(i=0;i<document.links.length;i++) { // alle Links im Dokument
                        if (id == document.links[i]) {
                            alert("gefunden: " + document.links[i]);
                            break;
                        }
                    }
                }
                </script>
                </head>
                <body>
                <a href="neu.html" onclick="test(this);return false">test</a>
                <a href="alt.html" onclick="test(this);return false">test2</a>
                <a href="schoen.html" onclick="test(this);return false">test3</a>
                </body></html>

                Wichtig: this nicht als string reinschreiben, this ist ein Zeiger auf  das uebergeordnete Objekt, hier also den Link

                Gruesse  Joachim

                1. Hi,

                  function test(id) {
                      for(i=0;i<document.links.length;i++) { // alle Links im Dokument
                          if (id == document.links[i]) {
                              alert("gefunden: " + document.links[i]);
                              break;
                          }
                      }
                  }

                  Ach so, ja, jetzt kannst Du in einem Array die Nummern hinterlegen, die Du uebergeben musst, wenn Du nicht gleich i uebergeben kannst:

                  var myNum = new Array(erste_link_nr, zweite_link_nr,...)
                  alert(myNum[i]);

                  Du musst allerdings jetzt _jeden_ Link auf der Seite beruecksichtigen, denn die stecken alle in document.links. Du koenntest ggf auch ain azzoziatives Arry nutzen, und die hrefs als key verwenden. Alles ein bisschen wackelig.

                  Gruesse  Joachim

      2. document.write("<a href='#' id='"+ branchnumb[tableloopA] +"' onClick='test(this.id)' class='link'>"
        +              fil[tableloopA]+"</a></td>");

        IDs dürfen nicht mit einer Nummer anfangen: http://www.w3.org/TR/REC-html40/types.html#type-name

        Struppi.