createElement und link()
Robbi
- javascript
Hallo,
ich hab folgendes Problem:
ich möchte gerne einen Link mit createElement erzeugen.
Bei der Forumssuche bin ich dann auf folgendes gestossen:
http://forum.de.selfhtml.org/archiv/2003/11/62340/
aber irgendwie will es nicht funzen.
Mein Quelltext sieht so aus:
var schliessen="Schliessen";
var verweis=document.createElement("a");
var machsWeg=document.createTextNode(schliessen.link("javascript:'closeIt();'");
verweis.appendChild(machsWeg);
document.getElementById("id").appendChild(verweis);
Damit wird in Klartext ausgegeben:
<a href="javascrip:'closeIt()';">Schliessen</a>;
Änder ich das createTextNode in createElement erscheint das 'Schliessen' gar nicht mehr... :-((
Was mach ich falsch??
Gruss, Robbi
Hi,
ich möchte gerne einen Link mit createElement erzeugen.
var schliessen="Schliessen";
var verweis=document.createElement("a");
Jetzt hast Du ein a-Element.
var machsWeg=document.createTextNode(schliessen.link("javascript:'closeIt();'");
Hier erzeugst Du erstmal den Link mit href="javascript:'closeIt();'" und Inhalt Schliessen, also
<a href="javascript:'closeIt();'">Schliessen</a>
Diesen String machst Du zum Textknoten.
verweis.appendChild(machsWeg);
Den erzeugten Textknoten hängst Du in das oben erzeugte a-Element.
document.getElementById("id").appendChild(verweis);
Jetzt wird der erzeugte Link in das Element mit id="id" eingehängt.
Dort steht dann
<a><a href="javascript:'closeIt();'">Schliessen</a></a>
(ggf. sind auch die > kodiert)
Du willst aber dem zuerst erzeugten a-Element
Daß der Inhalt des href-Attributs unsinnig ist, kommt noch erschwerend dazu.
1. weil anstelle des javascript: im href besser ein onclick wäre
2. weil der String (!) 'closeIt();' kein wirklich sinnvoller Javascript-Befehl ist. Die '' gehören weg.
cu,
Andreas
Hallo Andreas,
erstmal dank für die schnelle Antwort.
Hi,
<snip>
</snip>
Du willst aber dem zuerst erzeugten a-Element
- einen Textknoten mit Inhalt Schliessen verpassen
- ein href-Attribut verpassen
Genau, und wie mach ich das mit dem href-Attribut bitte? Da haperts bei mir irgendwie. Habs auch schon probiert mit
verweis.href=javascript:closeIt();
hats aber auch nicht getan...
Daß der Inhalt des href-Attributs unsinnig ist, kommt noch erschwerend dazu.
- weil anstelle des javascript: im href besser ein onclick wäre
ok, muss ich mal versuchen
- weil der String (!) 'closeIt();' kein wirklich sinnvoller Javascript-Befehl ist. Die '' gehören weg.
closeIt() ist eine selbstgeschriebene Funktion, die aufgerufen werden soll. Trotzdem die '' wegmachen?
cu,
Andreas
Gruss, Robbi
Hi,
Genau, und wie mach ich das mit dem href-Attribut bitte? Da haperts bei mir irgendwie. Habs auch schon probiert mit
createAttribute (oder so ähnlich)
- weil der String (!) 'closeIt();' kein wirklich sinnvoller Javascript-Befehl ist. Die '' gehören weg.
closeIt() ist eine selbstgeschriebene Funktion, die aufgerufen werden soll. Trotzdem die '' wegmachen?
Willst Du den _String_
'closeIt();'
oder den Funtionsaufruf
closeIt();
ausführen?
cu,
Andreas
Hi,
wahrscheinlich bin ich wohl zu blöd dazu...
nix geht, gar nix,
ich hab mittlerweile so an die 40 Kombinationen durch
und entweder kommt gar nix oder das Wort Schliessen ohne link oder der Klartext des Links, ich werd gleich wahnsinnig, kann doch nicht so schwer sein...
createAttribute (oder so ähnlich)
alles mögliche hab ich versucht, createAttribute, setAttribute, setAttributeNode und alles was sonst noch in SelfHTML steht, niente...
Willst Du den _String_
'closeIt();'
oder den Funtionsaufruf
closeIt();
ausführen?
Letzteres
cu,
Andreas
Gruss, Robbi
Ich kann die zwar bei deinem Problem nicht wirklich weiterhelfen, aber ich hab das gleiche Anliegen gehabt und hab hab einen Thread dazu aufgemacht, "Link mit insertAdjacentHTML oder createElement einfügen" heißt der glaub ich, da hat jemand eine Funktion dazu gepostet!
Hallo,
so gehts:
...
<script type="text/javascript">
function start() {
var feld=document.getElementById("lnk").firstChild ; // Hier soll der Link hin
var text=document.createTextNode("DynLink") ; // Der verlinkte Text
var link=document.createElement("a") ; // Der A-Knoten
link.href="javascript:alert('Dynamischer Link')" ; // Das Ziel
link.appendChild(text) ; // Text in den A-Knoten hängen
document.getElementById("lnk").replaceChild(link,feld) ; // Text durch Link ersetzen
}
</script>
</head>
<body onload="start()"> // Wichtig: Script darf erst laufen, wenn DIV existiert!
<div id="lnk">Ohne JS kein Link!</div>
</body>
...
Gruß, Jürgen
Hallo,
Dank an alle, hab das Problem dann letztendlich in den Griff bekommen, nach zähem Ringen.
Gruss, Robbi