I was wondering if it were possible to preformat text that is inside a textarea. Right now I have a textarea code that I want to add syntax highlighting and also add linenumbers so I am trying to wrap the text inside a pre tag. Is this correct or should I be doing something pletely different?
<textarea id="conversation" class="codebox" style="font-family:courier;">
<pre class="brush: js;">// Start typing...</pre>
</textarea>
I was wondering if it were possible to preformat text that is inside a textarea. Right now I have a textarea code that I want to add syntax highlighting and also add linenumbers so I am trying to wrap the text inside a pre tag. Is this correct or should I be doing something pletely different?
<textarea id="conversation" class="codebox" style="font-family:courier;">
<pre class="brush: js;">// Start typing...</pre>
</textarea>
Share
Improve this question
asked Mar 19, 2012 at 0:23
jmnwongjmnwong
1,6676 gold badges23 silver badges36 bronze badges
2
-
Unfortunately you can't do this with a textarea. Anything between the
<textarea>
tags is taken literally as text. You'd have to write your own editor, or use a pre-built one, that gives textareas some sort of RTE capability. – Bojangles Commented Mar 19, 2012 at 0:26 - I think you're looking for an in-browser code editor. Try CodeMirror. – Jared Farrish Commented Mar 19, 2012 at 0:27
3 Answers
Reset to default 3textarea
s are not able to render content like you're wanting to do, they only display text. I would suggest an in-browser code editor. A good one is CodeMirror, which is fairly easy to use:
HTML
<textarea id="code" name="code">
// Demo code (the actual new parser character stream implementation)
function StringStream(string) {
this.pos = 0;
this.string = string;
}
...
</textarea>
Javascript
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
lineNumbers: true,
matchBrackets: true
});
And CodeMirror insert an editable block with that content within the new editor.
There are other options. Wikipedia has a parison of Javascript-based source code editors entry.
Having the Pre tag contain the textarea works in Chrome
The textarea
element content is treated as preformatted in implementations, though browsers by default line wrap the text if a line is longer than specified by the cols
attribute. The wrapping can be disabled using the nonstandard but widely supported attribute wrap=off
.
The textarea element is not adequate for mere display of content, though. Neither is it suitable for setting up an input editor with formatting features, since all markup inside textarea
is taken literally.