Axel Richter: Cursorposition in DIV

Beitrag lesen

Hallo,

ich möchte das HTMLDivElement als Editor benutzen, in dem neben Text auch Abbildungen und Tabellen kopiert werden können. Normalerweise werden Inhalte aus der Zwischenablage ohne Probleme an der Cursor-Position eingefügt. Ich möchte jedoch den Inhalt der Zwischenablage filtern (Entferung aller HTML-Tags mittels RegExp-Funktion). Dazu muß ich aber zunächst den Inhalt der Zwischenablage in ein 2. DIV kopieren. Das erfordert jedoch die Verlagerung des Focus auf das 2. DIV. Bei der Rückkehr des Focus auf das 1. DIV steht der Kursor immer an der Anfansposition. Wie kann ich an die primäre Einfügeposition zurückkommen?

Aus http://www.faqts.com/knowledge_base/view.phtml/aid/13242/fid/128 habe ich mal das Folgende gebastelt:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
        "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<title>Text des Titels</title>  
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
<script type="text/javascript">  
var cursorPos;  
function saveCursorPos(){  
 cursorPos=document.selection.createRange().duplicate();  
}  
</script>  
</head>  
<body>  
<h1>Test</h1>  
<button onclick="cursorPos.select();">Focus</button>  
<hr>  
<div id="test" contenteditable onkeypress="saveCursorPos();" onclick="saveCursorPos();">Beiker was a  
baker once.</div>  
<hr>  
<input type="Text" name="t1" value="" size="10" maxlength="10">  
</body>  
</html>  

Klicke oder schreibe in das DIV, klicke dann in das Textfeld, klicke dann auf [Focus]. Der Cursor sollte nun wieder im DIV an der letzten Position stehen.

Das ist natürlich IE only. Im Prinzip sollte das aber auch mit einem IFrame im designMode funktionieren.

viele Grüße

Axel