webForumDet fria alternativet
Logga in / Bli medlem

Publisher

JavaScript

1 svar · 182 visningar · startad av Kim

Medlem sedan jan. 20007 697 inlägg
Frågan#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;
		}
	}
}
261 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)