私はテキストエリアを持っています
<textarea id="id-textarea-readme" wrap="hard"></textarea>
誰かが自分のテキストを「メモ帳」に書き込んで c&p を介してそこに入れるまで、これは本当にうまく機能します 、単語は正しく折り返されますが、「余分な」改行は行われません(これは「ハード」の目的のようなものです)
これを機能させるための回避策はありますか? JSまたは改行をトリガーするトリックはありますか?
私はテキストエリアを持っています
<textarea id="id-textarea-readme" wrap="hard"></textarea>
誰かが自分のテキストを「メモ帳」に書き込んで c&p を介してそこに入れるまで、これは本当にうまく機能します 、単語は正しく折り返されますが、「余分な」改行は行われません(これは「ハード」の目的のようなものです)
これを機能させるための回避策はありますか? JSまたは改行をトリガーするトリックはありますか?
このwrap=hard
属性は非標準であり、ブラウザ間で一貫して機能しません。このようなクライアント側の操作に依存する必要がないように、設計を変更してください。Textarea 要素は、ユーザーが実際に Enter キーを押したときに改行を含む、実際のユーザー入力を生成することが期待されます。さらに処理するために長い行を分割する必要がある場合は、サーバー側で行います。
私のテストでは、IE はコピー アンド ペーストでもラップします。一方、Firefox は、空白で折り返す場合にのみハード改行を導入し、「単語」内で折り返す場合は導入しないためcols=5
、入力 0123456789 (直接またはコピーペーストのいずれか) は 2 行として表示されますが、1 行として送信されます。 01234 56789 は 2 行で送信されます。他のブラウザにも非互換性があることを期待しています。
コピー & ペーストの問題は、ネイティブ OS の改行/改行/改行の問題に起因する可能性があります。
textarea DOM要素の変更または貼り付けをリッスンして、javascriptで解析できますか? これは私の概念的な推測ですが、jquery の一般的な例を次に示します。
$("textarea").on("change", function(event){
$this.replace(/\n\r?/g, '\n');
});