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.