Archiv verlassen und diese Seite im Standarddesign anzeigen : designMode
PHP_Atze
16.01.2004, 09:50
Hi ich habe ein Problem.
Ich habe per designMode ein Iframe editierbar gemacht . Das funz auch ganz gut, nur jedesmal wenn ich Enter drücke setzt er um den geschrieben Text(wenn dort noch nicht vorhanden) und in die neue Zeile <p></p>. Das ganze wär ja nicht schlimm, wenn dadurch nicht der ganze Text auseinander gerissen würde!
Hat eine eine Idee wie ich das ändern könnte?
Felix Kaiser
17.01.2004, 12:04
Was ist der 'designMode'? JavaScript verfügt über nichts entsprechendes.
hatte das selbe problem und habs gelöst, indem ich das event beim enter-drücken abgefangen habe
mein editierbares element hat die id="editor"
function fn_keypress() {
if(event.keyCode==13) {
tr=document.selection.createRange().pasteHTML("<br>");
return false;
}
return true;
}
document.all.editor.onkeypress = fn_keypress;
viele Grüße,
theApp
Felix Kaiser
22.01.2004, 14:12
Der Code tut aber nur mit dem Internet Explorer und auf sowas soll man nicht bauen.
PHP_Atze
26.01.2004, 16:28
cool Danke.
P.S: Der DesignMode ist auch nur für den IE..... ;)
Also, ich hab die Sache bei mir nochmal optimiert:
Um das Problem mit dem Cursor zu lösen (wenn man am Ende des Textes auf Enter drückt macht der curser kein cr, son dern geht eins weiter. dazu die Textrange am Ende nochmal selectieren
function fn_keypress() {
if(event.keyCode==13) {
tr=document.selection.createRange();
tr.pasteHTML("<br>");
tr.select();
return false;
}
return true;
}
document.all.editor.onkeypress = fn_keypress;
ABER:
Nachträglich hat sich mal wieder herausgestellt, dass es doch ganz sinnvoll von den MS-Leuten war, ein <p> statt <br> zu nutzen :-)
zum Beispiel bei späterer Verwendung von Kommandos "indent" oder "OrderedList" o.ä.
Also per css einfach das padding und margin des Absatzes auf 0 stellen.
So hab ichs jetzt gemacht.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.