.caretPos

aKraus

Erfahrenes Mitglied
hi,
ich habe folgendes Problem:

Code:
function fontformat(curForm,thevalue,thetype) 
{
	//setfocus(curForm);
	if (thevalue != 0) 
	{
		AddTxt = "[" + thetype + "=" + thevalue + "]" + getText(curForm) + "[/" + thetype + "] ";
		AddText(AddTxt,curForm);
	}
		curForm.sizeselect.selectedIndex = 0;
		curForm.fontselect.selectedIndex = 0;
		curForm.colorselect.selectedIndex = 0;
		setfocus(curForm);
}
 
function AddText(NewCode, curForm)
{
	if (curForm.edtMessage.createTextRange && curForm.edtMessage.caretPos)
	{
		 var caretPos = curForm.edtMessage.caretPos;
		 caretPos.text = NewCode;
	}
	else
	{
		 curForm.edtMessage.value+=NewCode;
	}
}
function getText(curForm)
{
	if(curForm.edtMessage.createTextRange && curForm.edtMessage.caretPos)
	{
		 return curForm.edtMessage.caretPos.text;
	}
	else
	{
		 return '';
	}
}

In der TextBox edtMessage steht immer ein Wert. Den markierten Text will ich in einen BBCode tag reinsetzen. Allerdings ist
Code:
curForm.edtMessage.caretPos
immer null - warum? bzw. wie kann ich das lösen?

Die function wird aufgerufen über:
HTML:
<SELECT id="fontselect" onchange="fontformat(document.BBForm,this.options[this.selectedIndex].value,'FONT')">
<OPTION value="0" selected>FONT</OPTION>
<OPTION value="Arial " selected>Arial </OPTION>
<OPTION value="Comic" selected>Comic</OPTION>
<OPTION value="Courier New" selected>Courier New</OPTION>
<OPTION value="Tahoma" selected>Tahoma</OPTION>
<OPTION value="Times New Roman" selected>Times New Roman</OPTION>
</SELECT>
 
Zuletzt bearbeitet:
Ich muss gestehen, dass mir momentan entfallen ist, was "caretPos" überhaupt sein soll :-)

Wieauchimmer, da ich nicht mehr weiss, wozu es da ist, kann ich den Fehler nicht finden,...dafür kann ich dir aber eine Variante ohne das "Ding" vorschlagen:
Code:
<script type="text/javascript">
<!--
function fontformat(curForm,thevalue,thetype) 
{
	curForm.edtMessage.focus();
	if (thevalue != 0) 
	{
		AddTxt = "[" + thetype + "=" + thevalue + "]" + getText(curForm) + "[/" + thetype + "] ";
		AddText(AddTxt,curForm);
	}
		curForm.sizeselect.selectedIndex = 0;
		curForm.fontselect.selectedIndex = 0;
		curForm.colorselect.selectedIndex = 0;
}
 
function AddText(NewCode, curForm)
{

    (objSelection=document.selection)
        ? objSelection.createRange().text = NewCode
        : curForm.edtMessage.value += NewCode;
}


function getText(curForm)
{
    
    strReturn = (objSelection=document.selection)
                ? objSelection.createRange().text
                : prompt('Text eingeben:','');

    return(strReturn);
}
//-->
</script>
...sollte eigentlich hinhauen
 

Neue Beiträge

Zurück