Publisher

JavaScript

1 svar · 185 visningar · startad av Kim

Medlem sedan jan. 20007 697 inlägg
Trådstart#1

Jag har ett litet problem med en textredigerare som jag håller på med. Det är så att man ska kunna markera text i en textarea och sen klicka på en länk för t.ex. fet stil och då ska den markerade texten bli fet.
Allt fungerar och markerad text blir också så som det ska bli. Problemet kommer när ingen text är markerad, då hamnar nämligen taggarna (t.ex. <b></b> ) bredvid textarean och förskjuter ta:n i sidled.

Någon som vet vad som är fel och som kan hjälpa mig?

<html>

<head>
 <title>Test</title>

<script language="JavaScript">
function formatText(txtArea, action) {

    txtAreaName = txtArea.name;

    txtRange = document.all[txtAreaName].createTextRange();

    if(txtRange != null) {
        txtContainer = txtRange.parentElement().name;

        objRange = document.selection.createRange();
        formatTxt = objRange.text;

        if(action == "b") {
            formatTxt = "<b>" + formatTxt + "</b>";
        } else if (action == "i") {
            formatTxt = "<i>" + formatTxt + "</i>";
        } else if (action == "u") {
            formatTxt = "<u>" + formatTxt + "</u>";
        } else if (action == "rubrik") {
            formatTxt = "<font size='4'><b>" + formatTxt + "</b></font>";
        }
        objRange.text = formatTxt;

    }
}
</script>

</head>
<body>
<form>

<textarea cols="30" rows="15" name="txtMainText" align="left">
</textarea>

<br><br><br>
<a href="#" onClick="javascript:formatText(txtMainText, 'b');"><b>B</b></a>
<br>
<a href="#" onClick="javascript:formatText(txtMainText, 'i');"><i>I</i></a>
<br>
<a href="#" onClick="javascript:formatText(txtMainText, 'u');"><u>U</u></a>
<br>
<a href="#" onClick="javascript:formatText(txtMainText, 'rubrik');"><b><font size='4'>RUBRIK</font></b></a>

</form>
</body>
</html>
Medlem sedan juni 20004 308 inlägg
#2
function formatText(txtArea, action) {
	txtAreaName = txtArea.name;
	txtRange = document.all[txtAreaName].createTextRange();
	if(txtRange != null) {
		txtContainer = txtRange.parentElement().name;
		objRange = document.selection.createRange();
		formatTxt = objRange.text;
		if(formatTxt){
			if(action == "b") {
				formatTxt = "<b>" + formatTxt + "</b>";
			} else if (action == "i") {
				formatTxt = "<i>" + formatTxt + "</i>";
			} else if (action == "u") {
				formatTxt = "<u>" + formatTxt + "</u>";
			} else if (action == "rubrik") {
				formatTxt = "<font size='4'><b>" + formatTxt + "</b></font>";
			}
			objRange.text = formatTxt;
		}
	}
}
260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)