JavaScript Zeichen einfügen im aktuellen Eingabefeld (Fokus) an der aktuellen Stelle

Frank37

Cadet 1st Year
Registriert
Aug. 2008
Beiträge
11
JavaScript: Zeichen einfügen im aktuellen Eingabefeld (Fokus) an der aktuellen Stelle


Hi,

mein Script soll an in dem aktuellen Feld (das Eingabefeld, das den Fokus hat) an der aktuellen Stelle (dort, wo der Cursor steht) Zeichen einfügen.

Wenn ich jetzt die Auflistung aller Elemente der Form hab,

- wie bekomme ich heraus, welches den Fokus hat
- wie bekomme ich heraus, wo der Cursor steht

(oder alternativ: kann ich einfach dem Dokument die Zeichen senden, so, dass es wie eine Tastatureingabe interpretiert wird?)

Beispiel:
Ein Formular hat 3 Input-Felder. Es ist nicht bekannt, welches der 3 Felder den Focus hat und wo der Cursor steht. Das Scipt soll an der aktuellen Position den Autotext (z.B. Firmennamen) einfügen.

So sieht meine Spielerei bisher aus:


Code:
function InsertAutoText() {
  var topwin;	// as window
  var frames;	// as window
  var frame;	// as window
  var doc;	// as HTMLDocument
  var forms;	// as HTMLCollection
  var form;	// as HTMLFormElement
  var elements;	// as HTMLCollection
  var element;  // as HTMLElement 
  var loc;	// as string
  var len;	// as int
  var i;	// as int
  var e;
  try {
    topwin= top;		// das Haupt-Dokument (enthält Frames)
    frames = topwin.frames;	// alle Frames des Haupt-Dokuments
    frame = frames[0];		// der 1. Frame
    loc = frame.location;	// URL des 1. Frames
    doc = frame.document;	// der 1. Frame als Dokument
    forms = doc.forms;		// die Forms der Seite (normalerweise nur 1)
    form = forms[0];		// das Formular
    elements = form.elements;	// die Elemente des Formulars
    len = elements.length;	// Anzahl der Elemente
    for (i=0; i<len; i++) {	// über alle Elemente des Formulars
      element = elements[i];	// ein einzelnes Element
      alert("Element " + i + ": ID= " + element.id + " Class=" + element.className);
    }
  } catch (e) {
    alert ('Error: ' + e);
  }
}

Ciao
Frank
 
Hi IceMatrix,

Ich statte jetzt alle Textfelder in der Form mit einem 'onFocus="SaveFocus(this)"' aus, wo ich mir das letzte aktive Textfeld merke.

Danach mit dem BBCode kann ich den Text entsprechend ändern (geht sogar Frame-übergreifend)

Danke

Frank
 
Zurück
Oben