ファンページのウォールに写真や動画を直接投稿できるウェブサイトがあります。一部のお客様は、テキストが Facebook に送信された後に単語がどのように配置されるかを確認するために、テキストの「投稿プレビュー」を要求しています。
したがって、私の仕事はこれを実装することです。これまでに行ったことは次のとおりです。
投稿テキストは次のように書かれていtextarea
ます。
<textarea id="fbMessage" name="message" placeholder="Enter your message here" rows="4" cols="47"></textarea>
投稿のプレビューとして使用する div を作成しました。Facebook のユーザー コンテンツ テキストの実際の div と同様の幅に設定しました。div 内に、テキストを取得する段落を作成しました。段落のフォント スタイルは、Facebook ユーザー コンテンツのテキスト スタイルとまったく同じように設定されています。
<div id="preview" style="margin: 10px auto; width:366px; background: #EDEDED; border: solid 1px #CCC; padding: 10px; word-wrap: break-word;">
<p id="previewText" style="font-size: 13px; font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;">Facebook Preview</p>
</div>
word-wrap: break-word;
テキストを強制的に折り返すために使用します。
textarea
最後に、テキストを からプレビュー div にコピーする Javascript を示します。
var form = document.getElementById('newFBForm');
var TheTextBox = document.getElementById("fbMessage");
var textAreaText = TheTextBox.value;
//Is used to preserve whitespace and new lines from the textarea to the div//
previewText = textAreaText.replace(/\n/g, "<br/>").replace(/\s/g, " ");
document.getElementById('previewText').innerHTML = previewText;
私の問題は、Facebook と同じようにプレビューが整列されることがあることです。以下に例を示します。
- Facebookで:
- 私のプレビューdivで:
しかし、時々私は別の配置を取得します。ここに例があります:
- Facebookで:
- 私のプレビューdivで:
word11111111で問題を確認できます。これは一例にすぎませんが、実際の投稿とは異なるプレビューを生成するさまざまなテキスト構造があります。
何か不足していますか?それとも私の実装に何か問題がありますか? それを改善したり、何かを追加したりするアイデアはありますか?
アップデート
を使用しようとすると、次のようになりますword-wrap: normal;
。