hm... ist die übertragung abgebrochen, also noch ein versuch =/
Bei deinem Versuch
onMouseOver="setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"
ist zumindest das hier ^^ falsch, denn in HTML-Parametern werden die Zeichen nicht durch voranstellen eines \ escaped, sondern durch umwandeln in eine HTML-Entitity.
hm.. aber ich würde es doch so machen (ohne gegen deine angaben zu verstossen
Ja, auch sehr gut möglich. Weil es solche Wege immer gibt, braucht man eigentlich selten mehr als zwei Ebenen ineinander verschachtelte Strings.
wenigsten improvisieren kann ich :)
document.writln("'Wer da?' \ "Ich bin's & wer bist du?" ");
Vorsicht hier, das geht so ^^^^^^ nicht.
naja wie schon gesagt, diese zeichen wie " usw wandelt mein editor um, deswegen habe ich keine erfährung mit sowas...
Ja, du musst hier drauf achten, wann welcher Code wo ausgeführt wird. Das alert() wird sofort ausgeführt und gibt dir daher den richtigen Wert zurück. Der Code, den du in den onMouseOver-Parameter geschrieben hast, wird jedoch erst onMouseOver, also erst beim Überfahren mit der Maus ausgeführt. Bis dahin kann mit den Variablen noch eine Menge passieren, aber das ist hier wahrscheinlich nicht das Problem, sondern wenn du den Code der die Variablen definiert (Funktionsparameter?) und den HTML-Code schreibt in einer Funktion ausführst, dann wird der Code
infoein(x1,x2,x3);
vor allem auch in einem anderen Variablenscope ausgeführt. Die Variablen sind dann nur in der Funktion definiert und später, wenn die Maus drüber fährt und die Funktion beendet ist, ist von diesen Variablen nix mehr übrig.
AHHHH! also ich glaube daran wäre ich noch verzweifelt, aber jetzt erscheint es mir vollkommen logisch.
- Du verwendest globale Variablen,
geht nicht.
- Du schreibst den Wert der Variablen zum Zeitpunkt des Funktionsaufrufes in das Fenster und musst dann dementsprechend Anfüührungszeichen verwenden. Das ist das was du machen willst.
Codebeispiel:
<script language="javascript" type="text/javascript">
function huhu()
{
// Hier werden die Variablen definiert und mit Werten belegt
var x1="1", x2="2", x3="3";
document.writeln("<a href="#" onMouseOver="infoein('"+x1+"','"+x2+"','"+x3+"');">baz</a>");
}
</script>
hey! super idee! darauf wäre ich nie gekommen, wollte schon den code so umschreiben das die variablen erst nachinfoein() declariert werden
nachteil wäre ca doppelt so viele zeilen für die selbe function
Nachteil: Das geht evt. schief, wenn der Variablenwert ein spezielles HTML-Zeichen ("&<>) enthält. Ausserdem klappt das nicht mit Objekten.
nachteil gilt hier nicht da meine variablen keine benutzer daten sind, sondern entweder berechnete zahlen oder fertige strings
function htmlentities(string)
{
return string.replace(/&/,"&").replace(/"/,""").replace(/</,"<").replace(/>/,">");
}
<!-- abschreib -->
Hoffe geholfen zu haben
jo vielen dank besonders zum letzten teil, das hat mich enorm weiter gebracht :)))
Henryk Plötz
-RB-