Hallo,
als kleine Anregung schicke ich Dir ein auf MSIE funktionierendes Testscript. Das müsste auch auf den meisten anderen Browsern zum Laufen zu bekommen sein. Für Netscape muss man nur ein anderes Eventcaching einbauen.
<!-- ------------------------------------------------------------ -->
<html><head><title>Test</title>
<script type="text/javascript">
<!--
ausgabestr="Druecken Sie irgendwelche Tasten!";
cursorpos=0;
function get_cursor_str()
{
cursorStr = "<span style='background-color:cyan;'>" +
ausgabestr.substr(cursorpos,1) + "</span>";
return cursorStr;
}
function ausgabe()
{
// alert("Sie haben die Taste mit dem Wert " + window.event.keyCode + " gedrueckt");
cursorstr=get_cursor_str();
document.getElementById("textfeld").innerHTML =
ausgabestr.substr(0,cursorpos) +
cursorstr +
ausgabestr.substr(cursorpos+1,65335);
}
//window.captureEvents(Event.KEYDOWN); // für Netscape
//window.onkeypress = cap;
//function cap(ereignis)
//{
// alert(ereignis.which);
//}
function move_cursor()
{
var taste=window.event.keyCode;
switch(taste)
{
case 37:
cursorpos--;
if (ausgabestr.substr(cursorpos,1)==">")
{
do
{
cursorpos--;
}
while (ausgabestr.substr(cursorpos,1)!="<");
cursorpos--;
}
break;
case 39:
cursorpos++;
if (ausgabestr.substr(cursorpos,1)=="<")
{
do
{
cursorpos++;
}
while (ausgabestr.substr(cursorpos,1)!=">");
cursorpos++;
}
break;
}
ausgabe();
}
function tastendruck()
{
ausgabestr=ausgabestr.substr(0,cursorpos)
+String.fromCharCode(window.event.keyCode)
+ausgabestr.substr(cursorpos,65535);
cursorpos++;
ausgabe();
}
function init1()
{
ausgabe();
}
//-->
</script>
</head>
<!--
<body onKeyDown="ausgabe();">
-->
<body onkeyDown="move_cursor();" onKeyPress="tastendruck();" onLoad="init1();">
<div ID="textfeld">
</div>
</body></html>
<!-- ------------------------------------------------------------- -->
Solltest due es weiterentwickeln, dann hätte ich gerne eine Rückmeldung. Wir hatten hier im Forum die letzten Tage schon mehrfach über eine solche "WYSIWYG"-Oberfläche gesprochen und dabei herausgefunden, dass dies wohl der einzig parktikable Weg bei soviel wie möglich Browsern ist. Andere Lösungen mit iFrames und Desingmode sind MS-Proprietär.
Noch was zu Styles:
Einfügen mit Buttons.
Nimm einen Toggle-Button für Fett, etc. NICHT einen für "ein" und einen für "aus. Merk Dir, an welcher Stelle der Style-Button eingeschaltet wurde und lass den Cursor solange nicht nach links darüber hinaus, bis er wieder ausgeschaltet wurde. Das Ein- und Ausschalten verusachen jeweils den <...> tag. Außerdem müssen noch die HTML-Sonderzeichen, also z.B. ü behandelt werden.
Viel Spaß
Liebe Grüße aus http://www.braunschweig.de
Tom
--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.