hein: Fehler: Objekt erwartet

Beitrag lesen

<html>
<head>
<title>Test</title>
</head>
<script type="text/javascript">
<!--

function verweis(){
alert("juhu, es funktioniert :-)");
}

function anzeigen(){
document.getElementById('linkplace').innerHTML = '<a href="#" onclick="verweis()">hier klicken</a>';
}

// -->
</script>
<body>
<span id="linkplace"><input type="button" value="los" onclick="anzeigen()"></span>
</body>
</html>

erklärung:

ok, als erstes hattest du das öffnende <body>-tag vergessen.
und dann zum kern: du hattest ja vor, durch den erzeugten link die funktion "verweis" ausführen zu lassen. wenn du mal einen blick in den quellcode des browserfensters wirfst, nachdem du auf den form-button "los" geklickt hast, wirst du sehen, warum es nicht funktioniert: du überschreibst nämlich mit deiner document.write-methode aus der funktion "anzeigen" den gesamten html-code deiner seite (das liegt in der natur dieser methode). der link wird zwar angezeigt, aber der rest, also alle anderen tags werden gelöscht, so auch die funktion "verweis", logisch, dass dann ein "objekt erwartet" wird beim klick.

um die ganze sache also nutzbar zu lassen, sollte nur der "los"-button mit dem link ausgetauscht werden, der rest der seite aber unberührt. darum habe ich einen span-bereich drumherum gepackt, der über eine id verfügt. klickst du auf den button "los" wird nur innerhalb dieses span-bereiches der inhalt per "innnerHTML" ausgetauscht, der rest der seite bleibt erhalten und somit auch die funktion "verweis", die dann auch problemlos klappt.

wichtig noch: wenn du dem <a>-tag kein "href"-attribut gibst, wird er nicht als link ausgegeben. mal davon abgesehen, dass jetzt wieder einige forumler über das "#" im href meckern werden. mir fiel ein eleganterer weg jetzt nicht ein. du könntes auch statt des onclick="verweis()" auch href="javascript:verweis()" schreiben, aber das ist wohl noch verpöhnter ;-)

gruß hein