WYSIWYG => Schriftart/Schriftgröße bei der Schreibcursorposition

fanste

Erfahrenes Mitglied
Hallo @all,

mal wieder eine kleine Frage bezüglich meines WYSIWYG-Editors.
Ich habe vor, dass es mir anzeigt, welche Schriftart/Schriftgröße an der Position des Schreibcursor vorliegt.

Mein bisheriger code
Code:
function getformation()
{
	searchface = true;
	searchsize = true;
	thisface = false;
	thissize = false;
	target = schreibfeld.event.srcElement;
	for (; target; target = target.parentNode) 
	{
		if(target.face && searchface)
		{
			searchface = false;
			thisface = target.face;
		}
		
		if(target.size && searchsize)
		{
			searchsize = false;
			thissize = target.size;
		}
	}
	if(thisface)
	{
		document.getElementById(thisface).selected = true;
	}
	else
	{
		document.getElementById('Times New Roman').selected = true;
	}
	
	if(thissize)
	{
		document.getElementById(thissize).selected = true;
	}
	else
	{
		document.getElementById('3').selected = true;
	}
}

Diese funktion wird so aufgerufen
Code:
schreibfeld.document.body.onclick = new Function("closemenueall();getformation()");

Dabei wird aber immer nach dem, was gesucht werden soll, an der Position gesucht, wo geklickt wurde und das irritiert manchmal. Wie bekomme ich es also hin, dass an der Position gesucht wird, wo sich der Schreibcursor befindet.

Ich hoffe ihr könnt mir helfen.

mb fanste

PS: Ich geh mal davon aus, dass ihr wisst, was ich mit "Schreibcursor" meine, oder?
 
Was macht "closemenueall()"....schon klar, dass es ein Menu schliesst....wo aber befindet sich dies Menu?
Im Editor-Document oder in dessen Elternfenster?

Rein vom Prinzip her:event.srcElement liefert das Element, in welchem der Event feuerte....also folgerichtig jenes, wo du hingeklickt hast, und nicht jenes, wo sich gerad der Cursor befindet(befand).
 
Die Funktion closemenueall() schließt die Menüs im Elternfenster. Die ist hierbei aber nicht so wichtig (stand halt noch da dabei und hab sie dringelassen)

Das ich mit "event.srcElement" immer da "lande", wo ich hingeklickt habe, ist mir klar. Darum suche ich ja gerade nach einer Möglichkeit, wie ich die besagten Infos (die ich suche) an der Position "finde", wo sich der Schreibcursor befindet. (Also dieses blinktende Ding, welches dir anzeigt, wo du gerade schreibst ;) )
 
Gebe dem Editorfenster den Fokus...dann kannst du auf das Elternelement der "selection"(Auswahl) zugreifen:
Code:
//IE
auswahl.createRange().parentElement()
//Mozilla
auswahl.anchorNode.parentNode
an die Selection kommst du per:
Code:
//IE
document.getElementById('editorId').contentWindow.document.selection;
//Mozilla
schreibfeld.getSelection();
 
Geht dass dann so? (Hab gerade nicht das Script zur Hand, um es zu testen)
Code:
function getformation()
{
searchface = true;
searchsize = true;
thisface = false;
thissize = false;
target = document.getElementById('schreibfeld').contentWindow.document.selection.createRange().parentElement();
for (; target; target = target.parentNode) 
{
if(target.face && searchface)
{
searchface = false;
thisface = target.face;
}

//....


Was ich vll noch sagen sollte: Der Editor (schreibfeld) ist ein iFrame.

Danke schonmal für deine Hilfe.
 
Könnte ja sein, dass du so aus dem stehgreif sagen kannst, dass das geht, oder ob das absoluter Dreck so ist.

Egal. Mittlerweile konnte ich es testen und TADA, es geht hervorragend.

Danke nochmal. Und gute Nacht noch.
 
Zurück