Hejsa derude
Jeg har en lille editor i PHP, og JS
- Problemet er så bare, at jeg gerne vil have sådan at når man trykker på en knap, så skal den indsætte der hvor musen er markeret
- Lige nu indsættes alt i bunden.
function tilfoj_objekt (objekt_id) {
if(objekt_id == "strong") {
var id = "strong";
}else if(objekt_id == "italic") {
var id = "i";
}else if(objekt_id == "underline") {
var id = "fuck";
}else if(objekt_id == "tabulator") {
var id = "<? print "\\t"; ?>";
}
if(objekt_id == "tabulator") {
txt = id;
}else if(document.forms[0].redigerdokument_kilde.value == "") {
var txt = "<"+id+"></"+id+">";
}else{
var txt = "\\n<"+id+"></"+id+">";
}
document.forms[0].redigerdokument_kilde.value = document.forms[0].redigerdokument_kilde.value+txt;
document.forms[0].redigerdokument_kilde.focus();
}
Det er ikke specielt svært, du kan bruge denne funktion:
function tilfoj_objekt(oEditor, sTag) {
/* Internet Explorer */
if(document.selection) {
oEditor.focus(); /* Sørg for at editoren er fokuseret, så vi henter markeringen her fra */
var oSel = document.selection.createRange(); /* Opret en pointer til markeringen */
oSel.text = (sTag == 'tabulator')? "<?="\\t"?>": '<' + sTag + '>' + oSel.text + '</' + sTag + '>';
/* Mozilla e.l. */
} else if(oEditor.selectionStart || oEditor.selectionStart == '0') {
var sValue = oEditor.substring(0, oEditor.selectionStart); /* Hent den første del af teksten, før cursoren */
sValue += (sTag == 'tabulator')? "<?="\\t"?>": '<' + sTag + '>' + oEditor.substr(oEditor.selectionStart, oEditor.selectionEnd) + '</' + '>'; /* Indsæt tagget og teksten, som er markeret */
sValue += oEditor.substring(oEditor.selectionEnd + oEditor.value.length); /* Indsæt teksten efter cursoren */
/* Andre browsere indsættes tagget til sidst */
} else {
oEditor.value += (sTag == 'tabulator')? "<?="\\t"?>: '<' + sTag + '></' + sTag + '>';
}
oEditor.focus(); /* Fokuser editoren */
}
Skal lige siges at du skal kalde funktionen med tilfoj_objekt(document.forms[0].redigerdokument_kilde, 'strong'); (strong udskiftes selvfølgelig med tagget, som skal indsættes).
På den måde kan du bruge funktionen til et hvilket som helst felt, hvis du får brug for at lave sådan en editor igen - det eneste du skal udskifte er så document.forms[0].redigerdokument_kilde med den nye editor...
- Mads
[Redigeret d. 20/12-05 09:25:27 af Mads]