Javascript in HTML - Globale Variable im Body-Bereich

Multimedia pur!
Beowulf

Re: Javascript in HTML - Globale Variable im Body-Bereich

Beitrag von Beowulf »

Java-Codes, die nur im IE funktionieren, trittst du besser in die Tonne.
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?
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.
Benutzeravatar
Hans
Adventure-Treff
Adventure-Treff
Beiträge: 10716
Registriert: 01.01.2002, 12:35
Wohnort: Nürnberg
Kontaktdaten:

Re: Javascript in HTML - Globale Variable im Body-Bereich

Beitrag von Hans »

Beowulf hat geschrieben:Java-Codes, die nur im IE funktionieren, trittst du besser in die Tonne.
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.
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7309
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Re: Javascript in HTML - Globale Variable im Body-Bereich

Beitrag von Fightmeyer »

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.

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;
  }
}
Da mußte ledilgich der letzte If-Befehl weg.
Beowulf

Re: Javascript in HTML - Globale Variable im Body-Bereich

Beitrag von Beowulf »

Also jetzt blicke ICH nicht mehr durch! :lol:
Es geht mir um folgende Codezeilen:

Code: Alles auswählen

var insText = range.text;
    range.text = text + insText;
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:

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;
	}
}
Klappt sowohl im IE als auch im Opera. :)
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7309
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Re: Javascript in HTML - Globale Variable im Body-Bereich

Beitrag von Fightmeyer »

Beowulf hat geschrieben:Also jetzt blicke ICH nicht mehr durch! :lol:
Es geht mir um folgende Codezeilen:

Code: Alles auswählen

var insText = range.text;
    range.text = text + insText;
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?
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.
Antworten