ホームページ  >  記事  >  バックエンド開発  >  各段落が

で囲まれるようにテキストエリアにコンテンツを入力するにはどうすればよいですか?

各段落が

で囲まれるようにテキストエリアにコンテンツを入力するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-17 08:31:581279ブラウズ

たとえば、次のように入力すると、
私は画家です
皆さんこんにちは
La La La


入力して送信すると、次のように変換されます:

私は絵描きです


皆さんこんにちは


ラララ




データベースに保存

返信内容:

リッチ テキストは必要ありません。データベースでは HTML を使用しないことをお勧めします。出力する場合、安全性を確保するために直接エスケープすることができないためです (コンテンツはすでに HTML です)。現時点では、XSS をフィルタリングするのに多大な労力がかかります。 リッチテキストエディターの場合は非常に面倒ですが、テキストエリアの場合は非常に簡単です。
<code class="language-js"><span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'textarea'</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">value</span><span class="p">;</span>
<span class="nx">val</span> <span class="o">=</span> <span class="nx">val</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="s2">"\n"</span><span class="p">,</span><span class="s2">"</p><p>"</span><span class="p">);</span>
<span class="nx">val</span> <span class="o">=</span> <span class="s2">"<p>"</span> <span class="o">+</span> <span class="nx">val</span> <span class="o">+</span> <span class="s2">"</p>"</span><span class="p">;</span>
</code>
簡単そうに思えますが、実際にはブラウザをまたいでこれを行うのは非常に面倒です。主な改行は br、p、div です。
tinymce/ckeditor などのサードパーティのエディターを使用している場合、これらのエディターには同様の機能があります。

自分で書くと単純にbrかdivかpを探して自分でツリーを生成して自分で置き換えるだけなのでかなり面倒です。 。 。 。 textareの内容を直接保存します。

表示時の CSS を設定します:

white-space: pre-wrap; html
を直接white-space:pre-wrapに変換する必要はありません。 各行を読み取り、n、ファイル関数ライブラリを書き込むループ サマーノート。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。