1

contenteditable DIV タグを入力フィールドとして使用する nicedit を、ユーザーがテキストを入力してフォーマットできるページで使用しています。このテキストは、このフォーマットされたテキストを画像に変換する php-script に送信されます。この contenteditable div 内のテキストは、折り返されている場所に改行文字がなく、単語で折り返されています。
この折り返しが発生した場所を見つけたり、発生時に改行を挿入して、テキストに別の行としてアクセスできるようにする方法はありますか?

4

2 に答える 2

1

各単語のピクセル座標を計算する必要があります。これは可能ですが、クロスブラウザーを実現するのは簡単ではありません。1 つの方法は、各単語の前にゼロ幅のダミー要素を挿入し、その位置を使用することです。最近の WebKit および Firefox ブラウザーgetClientRects()では、DOM Range オブジェクトのメソッドが提供されます。これは、侵襲性が低く、パフォーマンスが向上する可能性が高いため、望ましい方法です。IE 独自のTextRangeオブジェクトには、単語とプロパティの間を移動するメソッドがboundingLeftありboundingTop、TextRange の境界ボックスを提供します。

于 2012-04-11T14:05:04.187 に答える
0

別のアプローチを試して、その画像をレンダリングする方法を変更してください。おそらく、ワード ラップを自動的に処理するグラフィック ライブラリを見つけるか、ページ上の HTML を複製し、PhantomJSなどを使用してスナップショットを作成することができます。

于 2014-09-10T17:09:10.757 に答える