Ich habe jetzt versucht, über den onfocus() Eventhandler eine Variable zu setzen. Diese Variable soll den Elementnamen beinhalten, aus dem der onfocus Eventhandler ausgelöst wird.
Dann will ich den onclick-Eventhandler damit füttern.
Aber ich erhalte einen JS-Fehler:
Fehler: input is undefined
Quelldatei: file:///C:/test/html2.html
Zeile: 16
Aber so weit weg glaube ich von der Lösung gar nicht zu sein, oder?
Heinz
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript">
function var_setz(ename) {
var elementname = ename;
return elementname;
}
function insert(aTag, eTag, formularname, elementname) {
var input = document.forms[formularname].elements[elementname];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
</script>
</head>
<body>
<h1>Demo: Einfügen von Inhalten in eine Textarea</h1>
<p>Positionieren Sie einfach den Cursor innerhalb der textarea oder markieren Sie Text darin.
Wählen Sie dann "Einfügen", um <code>[link]...[/link]</code> an dieser Stelle
einfügen zu lassen, sofern es der Browser ermöglicht.</p>
<form name="formular" action="">
<p><textarea cols="30" rows="10" name="eingabe" onfocus="var_setz('eingabe')">Ihre Nachricht</textarea></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]', 'formular', 'elementname')"></p>
</form>
</body>
</html>