8

テキストエリア内にあるテキストを事前にフォーマットすることは可能かどうか疑問に思いました。現在、構文の強調表示と行番号を追加したいテキストエリアコードがあるので、テキストをpreタグ内にラップしようとしています。これは正しいですか、それとも完全に異なることをする必要がありますか?

<textarea id="conversation" class="codebox" style="font-family:courier;">
<pre class="brush: js;">//  Start typing...</pre>
</textarea>
4

3 に答える 3

3

textareasは、あなたがやりたいようにコンテンツをレンダリングすることはできず、テキストのみを表示します。ブラウザ内のコードエディタをお勧めします。良いものはCodeMirrorで、これはかなり使いやすいです。

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
});

そして、CodeMirrorは、そのコンテンツを含む編集可能なブロックを新しいエディター内に挿入します。

他のオプションがあります。ウィキペディアには、Javascriptベースのソースコードエディタエントリの比較があります。

于 2012-03-19T00:29:55.973 に答える
1

Pre タグにテキストエリアを含めると、Chrome で機能します

于 2015-08-04T17:44:45.783 に答える
0

要素のtextareaコンテンツは、実装では整形済みとして扱われますが、行がcols属性で指定された長さよりも長い場合、ブラウザはデフォルトでテキストを折り返します。非標準ではあるが広くサポートされている属性を使用して、ラッピングを無効にすることができますwrap=off

ただし、textarea 要素はコンテンツの単なる表示には適していません。textarea内部のすべてのマークアップが文字どおりに解釈されるため、書式設定機能を備えた入力エディターのセットアップにも適していません。

于 2012-03-19T06:11:02.083 に答える