Ich suche eine Art Selection-Eigenschaft des element-Objektes vom Typ Textarea.
Hallo Tom!
Wenn ich dich recht verstanden habe, soll der Besucher erst eine Textauswahl treffen, danach soll die Textauswahl mit einem Klick ins Textfeld an die jeweilige Klickposition eingefügt werden.
Mit der "select"-Methode kriegst Du das nicht hin. Da musst Du schon Tricksen. Nachstehendes Script zeigt, wie Du prinzipiell programmieren müsstest. Kopier es Dir auf den Rechner und probiere es aus.
Folgende Erweiterungen müsstest Du noch einbauen:
1. Das Script erstmal läuft nur auf IE. Um es auf NN laufen zu lassen, müsstest Du die "offset"-Eigenschaften in "page"-Eigenschaften ändern.
2. Das Script berücksichtigt keine Leerzeichen, Tabs, usw. Mit dem "RegExp"-Object müsstest Du deren jeweilige Position im Text abfragen und den Wert der Variablen "Buchstabe" entsprechend kürzen. Ist also machbar.
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<script language="JavaScript">
<!--
var WelcherName = '';
function Coords(){
var Buchstabe;
var Zeile = Math.round(window.event.offsetY);
var ZeilenIndex;
var z1 = 17;
var z2 = 0;
var Zeichen = 0;
for (i=1; i<10; i++) {
if (Zeile<z1 && Zeile>z2) {
ZeilenIndex=i;
}
z1+=16;
z2+=16;
}
for (i=1; i<10; i++) {
if (ZeilenIndex==i) {
Buchstabe = Math.round(window.event.offsetX / 8 + Zeichen);
}
Zeichen+=60;
}
var Text = document.forms[0].elements[0].value;
var ersterText = Text.substr(0,Buchstabe);
var letzterText = Text.substr(Buchstabe+1,Text.length);
var NeuerText = ersterText + WelcherName + letzterText;
document.forms[0].elements[0].value = NeuerText;
}
function Reset() {
document.forms[0].elements[0].value = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
}
function Annette() {
WelcherName = 'ANNETTE';
}
function Brigitte() {
WelcherName = 'BRIGITTE';
}
//-->
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div style="position:absolute; left:200; top:200;">
<form>
<textarea rows=10 cols=60 onClick="Coords()">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</textarea>
</form>
</div>
<br><br>
Name <a href="javascript:Annette()">"Annette"</a> einfügen - zuerst hier klicken, dann Cursor ins Textfeld<br>
Name <a href="javascript:Brigitte()">"Brigitte"</a> einfügen - zuerst hier klicken, dann Cursor ins Textfeld<br><br><br>
Textfeld <a href="javascript:Reset()">resetten</a>
</body>
</html>
</script>
</head>
</body>
Viele Grüsse
Hartmut