IE will kein dynamisches onclick
André Löscher
- javascript
Hallo allerseits,
ich möchte gerne, dass jedes Image auf der html seite bei einem Klick automatisch durch ein onclick Event eine weitere Function ausführt. Der Firefox macht es, der IE streikt! Hat jemand eine Idee?
Vielen Dank
André
-----------------------------
<script type="text/javascript">
function sayHello() {
Fenster1 = window.open("http://forum.de.selfhtml.org", "Zweitfenster", "width=300,height=400,left=100,top=200");
Fenster1.focus();
}
function updateLinks() {
var test = document.getElementsByTagName("a");
for(var i=0;i<test.length;i++) {
var imageSize = document.createAttribute("onClick");
imageSize.nodeValue = "javascript:sayHello()";
document.getElementsByTagName("a")[i].setAttributeNode(imageSize);
}
}
</script>
<body onload="javascript:updateLinks()">
<a href="#"><img src="images/andy_band.jpg" width="150" height="100" border="0" /></a><br />
<a href="#"><img src="images/arndt_band.jpg" width="150" height="100" border="0" /></a>
Servus,
etwas sinnlos, ein onclick-Attribut mit Javascript zu erzeugen. Warum verwendest du nicht einfach den Eventhandler innerhalb deines Scripts? z.B.
function attachOnClick()
{
var imgs = document.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
imgs[i].onclick = sayHello();
}
}
window.onload = attachOnClick;
Gruss
Patrick
Hallo shn,
imgs[i].onclick = sayHello();
damit hast Du als Eventhandler den Rückgabewert von sayHello() gesetzt.
Gruß, Jürgen
Servus,
imgs[i].onclick = sayHello();
Fluechtigkeitsfehler, die Klammern muessen natuerlich weg:
imgs[i].onclick = sayHello;
damit hast Du als Eventhandler den Rückgabewert von sayHello() gesetzt.
Die Funktion wird beim Klick auf das Bild ausgefuehrt. sayHello() Hat keinen Rueckgabewert, also nein.
Gruss
Patrick
hi,
imgs[i].onclick = sayHello();
Fluechtigkeitsfehler, die Klammern muessen natuerlich weg:
imgs[i].onclick = sayHello;damit hast Du als Eventhandler den Rückgabewert von sayHello() gesetzt.
Die Funktion wird beim Klick auf das Bild ausgefuehrt. sayHello() Hat keinen Rueckgabewert, also nein.
Dezogen auf den Code vor deiner Korrektur war Jürgens Aussage korrekt.
Und wenn deine Funktion nichts zurückgibt, dann weisst du mit xyz = funktion() eben nichts zu (also vermutlich "undefined").
gruß,
wahsaga
Hallo André,
function updateLinks() {
var test = document.getElementsByTagName("a");
for(var i=0;i<test.length;i++) {
var imageSize = document.createAttribute("onClick");
imageSize.nodeValue = "javascript:sayHello()";
document.getElementsByTagName("a")[i].setAttributeNode(imageSize);
}
}
ich setze Eventhandler so:
imageSize.onload = sayHello;
ohne Klammern! Der Handler ist eine Funktionsreferenz, kein Rückgabewert.
Gruß, Jürgen