geloescht_JesterDay Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 Hallo, also wie in der Überschrift steht, geht es darum, mithilfe von Javascript einen Text in eine Textarea einzufügen. Das funktioniert soweit auch schon, aber: Nach dem Einfügen springt Firefox wieder an den Anfang des Textes nicht an die markierte Stelle (oder da wo der Cursor steht). Mit dem IE klappt es, Opera hab ich noch nicht probiert. Hab es auch mal hier im Forum probiert, hier passiert dasselbe. Wenn ich einen langen Text schreibe, der größer als die Textarea ist und am Ende dann einen Text markiere und ihn z.B fett mache, steht der Text danach wieder am anfang. Das kann nervig sein, wenn der Text lang ist und man mehrere solcher Änderungen (nicht von Hand) vornehmen will. Ist das ein Fehler im Firefox oder fehlt da nur was? Das Javascript findet sich z.B. hier: http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 ich würd sagen, das ist ein Fehler des FF. Der Cursor wird ja an die position unten gesetzt, nur das Textfeld scrollt in die 1. Zeile anstatt in die Zeile an der Cursor steht. Vielleicht könntest du mit folgenden Ansatz einen workaround erreichen: - Zeile berechnen, in der der Text eingefügt wurde - Prüfen ob die Zeile höher ist als die möglich anzuzeigende anzahl Zeilen - ggf. die Textarea runterscrollen zur angegebenen Zeile Ob es entsprechende funktionen gibt um die textarea zu scrollen usw kann ich dir nicht sagen... Gruß, Markus Edit: Ich hab ein Script gefunden, dass eine Textarea scrollen können soll... ist aber ungetestet! http://www.jsmadeeasy.com/javascripts/Scrolling/Scrolling%20Textarea/index.htm hier gibs ne ganze menge Javascripts: http://www.jsmadeeasy.com/javascripts/Scrolling/list_test.asp Edit2: hm ich hab wohl das script falsch verstanden... ich hab das jetzt ma lokal getestet, aber der scrollt nicht die textarea, sondern fügt einfach zeile für zeile text hinzu.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 10. Juli 2007 Teilen Geschrieben 10. Juli 2007 Mal in den Tiefen des Boards gebuddelt... :old Wenn ich einen langen Text schreibe, der größer als die Textarea ist und am Ende dann einen Text markiere und ihn z.B fett mache, steht der Text danach wieder am anfang. Gibt es dafür inzwischen eine Lösung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 10. Juli 2007 Autor Teilen Geschrieben 10. Juli 2007 Gibt es dafür inzwischen eine Lösung? Hättest du doch selber probieren können :upps Hab gerade einen langen Lorem Ipsum hier eingefügt und am Ende ein Wort fett gemacht... und er blieb stehen. FF 2.0.0.4 (Kubuntu) Also scheint es wohl ein FF Problem gewesen zu sein. Wie ich das damals "gelöst" hab weiß ich nicht mehr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 11. Juli 2007 Teilen Geschrieben 11. Juli 2007 Jup, hätte man mal machen können Allerdings funktioniert es nur hier, in anderen Foren nicht - also keine Browser-, sondern Scriptsache. Hab mal versucht, mich hier in die Quellen einzuwühlen, sehe da aber ehrlich gesagt nicht durch. Wenn also jemand Rat und/oder ein hilfreiches Script weiß... Merci! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 11. Juli 2007 Autor Teilen Geschrieben 11. Juli 2007 Also ich hab jetzt (inkl. hier) 3 Seiten bzw. Editoren probiert, ging mit allen. Wie gesagt der hier, der vom MediaWiki, und der FCKEditor (den ich jetzt anstelle des oben angesprochenen Skriptes verwende). Was genau läuft denn bei dir schief? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 11. Juli 2007 Teilen Geschrieben 11. Juli 2007 Jup, MediaWiki macht bei mir auch, was es soll. Es geht um eine eigene Seite, folgender (vereinfachter) Code: <html> <head> <script type="text/javascript"> <!-- function insert(aTag, eTag) { var input = document.forms['form'].elements['pagecontent']; 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> <img src="egal" onClick="insert('[element|', ']')" /><br /> <form name="form"> <textarea name="pagecontent">text text mehr text ...man muß scrollen </textarea> </form> </body> </html>[/PHP] Seite aufrufen, in der Textarea den Cursor auf die letzte Zeile stellen, Bild über der Textarea anklicken. In IE (6.0) und Opera (9.10) fügt er "[element|]" ein und läßt die Scrollposition des Textfeldes dann ganz unten stehen. Im Firefox (2.0.0.4) wird auch "[element|]" eingefügt, der Cursor bleibt auch in der letzten Zeile - aber der Scrollbalken "springt" nach ganz oben. Nicht tödlich, aber bisweilen schon sackig. Das insert-Script habe ich nicht selbst geschrieben. Meine Frage ist nun: Haben MediaWiki, FCKEditor & Co. Code in ihren Scripts, der den Scrollbalken der Textarea auch im Firefox wieder an die Einfügeposition setzt - oder hab ich im geposteten Script meiner Seite etwas übersehen, das die Textarea wieder hochscrollen läßt? Letztenendes wird doch nur der gegebene Text eingefügt und der Cursor zwischen Anfang- und Endstring gesetzt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 11. Juli 2007 Autor Teilen Geschrieben 11. Juli 2007 Hab grad mal im MediaWiki JS geschaut. Auf den ersten kurzen Blick hab ich das gefunden: // Mozilla ... var scrollTop = txtarea.scrollTop; ... txtarea.scrollTop = scrollTop; Das sieht doch mal nach dem aus, was du suchst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 11. Juli 2007 Teilen Geschrieben 11. Juli 2007 That's it, vielen Dank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.