Ja, dafür müsste bei deinem ersten Code (die verschlankte Version von dir) diese große if-Abfrage sein. Sie geht die verschiedenen Möglichkeiten durch, wahrscheinlich um auf mehreren Browsern funktionsfähig zu sein.Allerdings blick ich noch nicht ganz durch, was da eigentlich genau passiert. Es wird ja der Textbaustein immer ans Ende des Feldes eingefügt. Kriegt man das auch irgendwie so umgemodelt, daß er es an die aktuelle Curserposition im Textfeld einfügt?
Javascript in HTML - Globale Variable im Body-Bereich
Re: Javascript in HTML - Globale Variable im Body-Bereich
Java-Codes, die nur im IE funktionieren, trittst du besser in die Tonne.
- Hans
- Adventure-Treff
- Beiträge: 10716
- Registriert: 01.01.2002, 12:35
- Wohnort: Nürnberg
- Kontaktdaten:
Re: Javascript in HTML - Globale Variable im Body-Bereich
Stimme zwar grundsätzlich zu, soweit ich mich erinnern kann, entwickelt Fightmeyer aber auch für seine Firma, und firmenintern ist sowas schon in Ordnung.Beowulf hat geschrieben:Java-Codes, die nur im IE funktionieren, trittst du besser in die Tonne.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Javascript in HTML - Globale Variable im Body-Bereich
In dem Fall gehts jetzt nur um einen administrativen Bereich für eine private Seite. Da spielt die volle Browserkompatibilität keine Rolle.
Im übrigen hab ich es jetzt noch hinbekommen, daß beim einfügen eines Textes, dieser immer an die aktuelle Stelle eingefügt wird.
Da mußte ledilgich der letzte If-Befehl weg.
Im übrigen hab ich es jetzt noch hinbekommen, daß beim einfügen eines Textes, dieser immer an die aktuelle Stelle eingefügt wird.
Code: Alles auswählen
//text an Curserposition einfügen
function insert_text_into(text, formularbezeichnung, textfeldbezeichnung) {
form_name = formularbezeichnung;
text_name = textfeldbezeichnung;
var input = document.forms[form_name].elements[text_name];
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 = text + insText;
}
}
Re: Javascript in HTML - Globale Variable im Body-Bereich
Also jetzt blicke ICH nicht mehr durch!
Es geht mir um folgende Codezeilen:
Wenn insText gleich range.text ist, dann ist in der zweiten Zeile doch range.text = text + range.text. Wenn also in einem Text das Wort "Hallo" markiert ist, und "Test" eingefügt werden soll, steht nachher "TestHallo" da, anstatt das Hallo zu ersetzen, oder? Und wenn kein Text selektiert wurde, um den Text einfach nur an der Cursorposition einzufügen, dürfte doch gar nichts passieren, oder?
PS: Habe den Code noch mal überarbeitet, so dass er wie erwartet funktioniert:
Klappt sowohl im IE als auch im Opera. 

Es geht mir um folgende Codezeilen:
Code: Alles auswählen
var insText = range.text;
range.text = text + insText;
PS: Habe den Code noch mal überarbeitet, so dass er wie erwartet funktioniert:
Code: Alles auswählen
function insert_text_into(text, formularbezeichnung, textfeldbezeichnung) {
var input = document.forms[formularbezeichnung].elements[textfeldbezeichnung];
input.focus();
if(typeof document.selection != 'undefined') {
var range = document.selection.createRange();
range.text = text;
}
}

- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Javascript in HTML - Globale Variable im Body-Bereich
Doch. Er soll ja den markierten Text auch nicht ersetzen, sondern einfach an die Curserposition einen zusätzlichen Text einfügen. Von daher ist das schon richtig, wenn er die beiden Strings addiert. Eine Range ist auch eine einfache Curserposition. Auch wenn man nichts markiert hat. Darum funktioniert das sowohl mit Markierungen, als auch ohne Markierung.Beowulf hat geschrieben:Also jetzt blicke ICH nicht mehr durch!![]()
Es geht mir um folgende Codezeilen:Wenn insText gleich range.text ist, dann ist in der zweiten Zeile doch range.text = text + range.text. Wenn also in einem Text das Wort "Hallo" markiert ist, und "Test" eingefügt werden soll, steht nachher "TestHallo" da, anstatt das Hallo zu ersetzen, oder? Und wenn kein Text selektiert wurde, um den Text einfach nur an der Cursorposition einzufügen, dürfte doch gar nichts passieren, oder?Code: Alles auswählen
var insText = range.text; range.text = text + insText;