background: Onclick auslesen, bearbeiten und wieder speichern

Hallo,

ich versuche, alle Links einer Seite per JavaScript um einen Parameter zu ergänzen. Mit <a href="link"> und <form action="link"> soweit kein Problem:
Ich lese den link als String aus, bearbeite ihn (hänge den Parameter dran) und speichere ihn wieder.
Doch mit <input onclick="location.href='link'"> habe ich das Problem, dass IE mich den bearbeiteten Link weder mit setAttribute noch mit atributes.nodevalue als String setzen lässt, sondern offensichtlich eine Funktion erwartet. Kann ich eine solche aus dem String erzeugen?

Mein Code bisher:

  
function UpdateLinks(param) {  
 for (var i = 0; i < document.links.length; ++i)  
  with (document.links[i]) {  
   if ((protocol=="http:" || protocol=="https:") && hostname==location.hostname) {  
    href = AppendParam(href, param);  
   }  
  }  
 for (var i = 0; i < document.forms.length; ++i)  
  with (document.forms[i]) {  
   setAttribute("action", AppendParam(getAttribute("action"), param));  
   }  
 for (var i = 0; i < document.getElementsByTagName(tags["input"]).length; ++i) {  
  with (document.getElementsByTagName(tags["input"])[i]) {  
   var o = attributes["onclick"].nodeValue;  
//liefert auch unter IE onclick als String  
  
   // ... o bearbeiten ...  
  
                        setAttribute("onclick", o);  
   attributes["onclick"].nodeValue = o;  
//unter FF gehen beide Möglichkeiten, unter IE keine  
  }  
 }  
}  

Danke für jede Idee.

  1. Hallo,

    sondern offensichtlich eine Funktion erwartet. Kann ich eine solche aus dem String erzeugen?

    Ja, mit new Function.

    .onclick = new Function("JavaScript-Code");
    In deinem Beispiel new Function(o)

    Mathias

    1. Ja, mit new Function.

      .onclick = new Function("JavaScript-Code");
      In deinem Beispiel new Function(o)

      Ahhh! Tausend Dank!
      Meine Site ist gerettet, ich hätte sonst die ganze Aufruf-Logik und an die hundert PHP-Skripte ändern müssen.

      Thomas