webForumDet fria alternativet

Färg text inom speciella taggar

JavaScript

14 svar · 427 visningar · startad av matt_helvey

Medlem sedan juni 20048 inlägg
Frågan#1

hur kan man få tex röd färg inom speciella paraneser tex [fett]fet text[/fett] ( <b></b> ) i en TEXTFIELD (ska ha det till typ en editor) sedan när [fett] parantesen avslutas (/) ska det bli tex normal svart textfärg igen (som dreamweaver), fatta?

är detta ens möjligt?

Medlem sedan maj 200010 687 inlägg
#2

Jo, om man använder en MSHTML editor. Jag provade att göra HTML-editor med hjälp av en MSHTML-editor men fick aldrig till det så det blev riktigt bra. Lägger man ner lite mer tid på det så kanske...

Men kör man med en MSHTML editor så kan man ju lika gärna göra det WYSIWYG. :)

Medlem sedan juni 20048 inlägg
#3

hade tänk WYSIWYG, men tänkte bara börja lite smått först..

ahh, var får man tag på MSHTML då?

Medlem sedan nov. 20017 144 inlägg
#4
<script type="text/javascript" language="javascript">
function myCallback(f){
	f = f.replace(/\[(b|i|u)\](.*?)\[\/(b|i|u)\]/ig,"<$1>$2</$3>");
	f = f.replace( /\[url\](.+)\[\/url\]/ig, '<a href="$1">$1</a>' );
	f = f.replace( /\[email\](.+)\[\/email\]/ig, '<a href="mailto:$1">$1</a>' );
	document.getElementById("bar").innerHTML = f;
    };
</script>

<form>
<textarea name="foo" onkeyup="myCallback(this.value)"></textarea>
</form>

<div id="bar"></div>

Fet text
Kursiv text
Understruken text
Länk
epostlänk
Kan ju byggas ut.

Medlem sedan maj 200010 687 inlägg
#5

Ungefär så min grej funkade. Men istället så färgade den koden istället för att byta ut den. Ungefär som en kodeditor.
Jobbiga är bara att när man gör så så hamnar markören hela tiden sist. Ganska irriterande. :)

Medlem sedan juni 20048 inlägg
#6

?

Alltså i textboxen man skriver in koden ska koden färgas till olika färger så man håller rätt på dem, tex javascript i röd text tabeller i grön osv. hehe, det var det jag undra... ;)

Medlem sedan mars 20015 287 inlägg
Medlem sedan juni 20048 inlägg
#8

tack för MSHTML'n

Men ni verkar inte vilja fatta. har ni använt dreamweaver? när man väljer kodläge så färgas koden för att man ska kunna se det bättre, i stället för tex notepad där allt är svart.. jag undra om man kan färga koden I TEXTFÄLTET, inte resultatet..

Medlem sedan mars 20015 287 inlägg
#9

I ett vanligt textfält i en form kan du inte det.

Medlem sedan maj 200010 687 inlägg
#10

Man får göra det med en MSHTML editor då. Det irriterande blir då som jag sa att markören hamnar sist efter varje tecken man skriver. Irriterande om man redigerar någonting i mitten av texten.

Medlem sedan nov. 20017 144 inlägg
#11

Tror att jag sett en javaapplet som fixade att färga kod. Minns dock inte var. Att bygge en med regexp eller så kommer säkert att bli svårt.

Medlem sedan maj 200010 687 inlägg
#12

Ganska enkelt egentligen. Jobbiga är bara att få det att köra på ett smart sätt medans man skriver. Att det blir en massa replaces hela tiden håller inte riktigt. :l

Medlem sedan juni 20048 inlägg
#13

om det är ganska enkelt kan du ju bara visa en kodsnutt så jag får lite kickstart...

Medlem sedan maj 200010 687 inlägg
#14

Sure. Som du ser så funkar den fint när man skriver i slutet. Skriver man däremot i mitten så hoppar markören.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<style type="text/css">
BODY {
	width: 100%;
	height: 100%;
	margin: 0px;
	padding: 0px;
}

DIV.editor {
	width: 100%;
	height: 100%;
	font-family: Courier New;
	font-size: 13px;
	padding: 10px;
}
SPAN.tag {
	color: red;
}
</style>
<script type="text/javascript">
function parseHTML()
{
	var html = editor.innerHTML;
	
	html = html.replace(/<br>/gi, "\n");
	html = html.replace(/<[^>]*>/gi, "");
	html = html.replace(/\n/gi, "<br>");
	html = html.replace(/(\&lt\;[\s\S]*?\&gt\;)/gi, "<span class=\"tag\">$1</span>");
	
	
	editor.innerHTML = html;
}

function load()
{
	var html = "&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;&lt;/title&gt;\n&lt;link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"&gt;\n&lt;/head&gt;\n&lt;body&gt;\ncscscscs\n&lt;div class=\"editor\" contentEditable&gt;&lt;/div&gt;\ncsscsc\n\n&lt;/body&gt;\n&lt;/html&gt;";
	html = html.replace(/\n/gi, "<br>");
	editor.innerHTML = html;
	
	parseHTML();
}
</script>
</head>
<body onLoad="load();">

<div id="editor" class="editor" contentEditable onKeyUp="parseHTML();"></div>

</body>
</html>
Medlem sedan juni 20048 inlägg
#15

flippigt, jaja... tack

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)