Günter Hagedorn: Link dynamisch ändern und undefined abfangen

Hi Leute !

Zwei Probleme hab ich momentan mit JavaScript:

1. Links dynamisch ändern

Ich habe einen Button mit einem Link. Nun will ich über eine Funktion das Ziel des Links ändern. Allerdings will ich nicht das OnClick-Ereignis für den Button ändern, sondern direkt den Link.
(OnClick nicht, weil die Seite auch ohne JS funktionieren soll)
Momentan löse ich das, indem ich das Objekt document.all.buttonname.outerHTML mit String-Funktionen umbaue und dann wieder zurückschreibe. Das funktioniert auch bestens, nur birgt es einen Schönheitsfehler. Beim wiedereinsetzen hängt JS einfach ein CarriageReturn an die Zeile ran. Und dann steht das folgende </TD></TR> nicht mehr in der gleichen Zeile, was dann beim IE einen Bruch im Design von 2 pixeln bringt...

Irgendwelche Ideen ???

2. Ich habe eine Funktion, der ich mal einen, mal zwei Parameter übergeben will. Wenn ich nur einen übergebe, soll aber der andere einen Default-Wert bekommen. Wie mache ich das??

Bisher habe ich folgendes probiert:

function (wert1, wert2) {
   if {wert2 == "") {
         wert2 = "0";
   }
}

Der Teil innerhalb des IF-Bereiches wird nicht ausgeführt,
da wert2 undefined ist. Nun könnte ich einfach schreiben:
wert2 == undefined ... das funktioniert auch auf dem IE5
auf nem PC, aber nicht zum Beispiel auf einem Macintosh.
Was ich eigentlich will, ist das wenn der Wert nicht
zwischen "1" und "9" ist..

Derzeit muß ich mir mit folgendem behelfen:

if ((inText2 != "1") && (inText2 != "2") && (inText2 != "3") && (inText2 != "4") && (inText2 != "5") && (inText2 != "6") && (inText2 != "7") && (inText2 != "8") && (inText2 != "9")) {

Das ist natürlich voll Mist, aber ist bisher das einzige, was geht, wenn man mit dem "undefined"-Problem kämpft...

Hat jemand eine andere, funktionierende Lösung?

Danke
Günter

  1. Hi Günter,

    für Deine Frage eins hätt ich was anzubieten:

    <a href="default.htm" onClick="funktion();return false;">

    In Funktion() definierst Du dann Deine sich ändernden Links (ich weiß, das willst Du eigentlich nicht, aber ich sehe nicht warum eigentlich); return:false; verhindert, dass der href-Link ausgeführt wird. Ohne JS wird dann der default.htm-Link ausgeführt.
    Das müsste doch das sein, was Du willst, oder verstehe ich da was falsch?

    Grüße,

    Utz

    1. Hi Utz,

      Du hast es genau richtig verstanden. Das mit dem return false hab ich nicht gewußt. Nun ist es klarer :-) Danke...

      Aber eine einfachere Lösung, als den String auf die von mir geschilderte Weise zusammenzubauen gibt es wohl auch nicht, oder??

      Danke nochmals,

      Günter

  2. Hallo,
    vielleicht hilft dir das mit deinem 'undefined' problem:

    http://www.teamone.de/selfhtml/tecm.htm#a5

    Grüsse
    Miraldo

    1. Hallo Miraldo,

      http://www.teamone.de/selfhtml/tecm.htm#a5

      leider nein, denn isNAN() funktionierte hier nicht, wenn
      undefined übergeben wird. Ansonsten wäre das wohl der
      richtige Ansatz gewesen.

      Danke für die Mühe...
      Günter

  3. Hi
    Zu deiner zweiten Frage:
    Du kannst die Anzahl der an die Funktion uebergebenen Parameter abfragen und dann wenn nur ein Parameter uebergeben wurde dem anderen einfach den default wert zuweisen.
    siehe <../../tecf.htm>
    Tschau Holger

    1. Hi Holger !

      Du kannst die Anzahl der an die Funktion uebergebenen Parameter abfragen und dann wenn nur ein Parameter uebergeben wurde dem anderen einfach den default wert zuweisen.
      siehe <../../tecf.htm>

      Das war genau das, was ich brauchte. Danke Dir herzlichst !

      Günter