Hallo,
anchors= ContentPart.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++)
{
anchors[i].onClick= function()
{
alert('hello link');
}
if(anchors[i].name=="_self")
Ein a-Element mit name="_self", was soll das bedeuten?
Mehrere a-Elemente mit demselben name-Attributwert sind übrigens nicht erlaubt. Suchst du vielleicht eine Klasse?
{
temp_a= anchors[i].href;
anchors[i].setAttribute("onClick", "alert('"+temp_a+"')");
anchors[i].setAttribute("href", "javascript:void(0);");
Erst mal kannst du Event-Handler nicht so setzen wegem dem IE. Das Schema, an das du dich halten musst, ist:
anchors[i].onclick = funktion;
Zweitens, warum speicherst du den Wert der href-Eigenschaft überhaupt in einer Variable, um sie im Click-Handler auszugeben? Im Click-Handler kannst du auch direkt über »this« auf das geklickte a-Element zugreifen und so kommst du auch an die href-Eigenschaft:
function klick () {
alert(this.href);
return false;
}
...
anchors[i].onclick = klick;
return false; bewirkt, dass der Browser nicht auch noch das href-Linkziel annavigiert, du musst also href nicht mit »javascript:void(0)« überschreiben.
Darüber hinaus:
Wenn der Handler gewisse Variablen braucht, die nicht über »this« erreichbar sind, erst dann könnte man auf die Idee kommen, eine variable Funktion als Handler zu setzen. Das ginge so:
var parameter = "individuell";
anchors[i].onclick = new Function("alert('" + parameter + "')");
Aber das ist eigentlich immer unnötig, denn man kann diese Variable einfach an das Elementobjekt anhängen und dann im Handler über this darauf zugreifen:
function klick () {
alert(this.parameter);
}
...
anchors[i].parameter = "individuell";
anchors[i].onclick = klick;
Mathias