2012-02-12 13 views
1

私はリッチテキストエディタの作成を検討していましたが、最初はcontentEditableの使用を計画していましたが、結果は非常に矛盾しており、出力HTMLはしばしば壊れています。ContentEditable Alternative

私はcontentEditableを使用する代わりに、Google Docsのやり方(独自のエンジンを作成した方法など)があるかどうかは疑問でした。

+0

を利用することができたときに、なぜ最大長さなどの問題を気かもしれませんあなたが直面している問題は?出力HTMLは修正可能であり、大きな編集者(TinyMCE、CKEditor)はこれの妥当な仕事をしています。 –

答えて

0

なぜTinyMCEに行ってみませんか?それはかなり良いとかなり洗練された - ちょうどそれをPHPと組み合わせる必要がありますあなたは内容を保存することができます:)

+0

提案してくれてありがとう、それを試して、それは正常に動作します。 – skimberk1

6

Google DocsもcontentEditable上に構築されます。しかし、彼らはそこにいるほとんどの編集者とは違ったやり方でそれを使います。

ドキュメント領域にフォーカスすると、偽のキャレットのためにフォーカスされたように見えます。実際のフォーカスはキーボードイベントリスナを設定してになります。エンジン(kix)は、押したキーに基づいて文書領域を変更します。

ブラウザがDOMを変更するブラウザではないため、ブラウザ間で深刻な矛盾が実際に発生しないため、これはすばらしいことです。

私は考えることができる唯一の選択肢は、あなたがについてより具体的でした代わりのcontentEditable要素の単純なテキスト入力することなく、あなただけのcontentEditable ;-)

+0

Googleドキュメントが隠しiframeに 'contenteditable'を使用していますか?私が最後に見たとき、私は内容の乏しいものを見つけることができませんでした。私はよく間違っている可能性があります。 –

+0

ええ、前回チェックしたとき、GoogleドキュメントにはcontentEditable要素がありませんでした。 私は彼らがJavascriptでキーストロークを検出したと確信しています。 – skimberk1

+0

私はちょうどチェックしました。間違いなく、kixコアにcontentEditable関連のコードがあります。そして、はい、キーストロークを検出するだけです。彼らはたぶんいくつかの要素を集中させたい(クロスブラウザの問題?)ので、ドキュメント領域が "集中"していないときにコンテンツを変更しないようにしたい。私はそれを詳細に研究しなかった。しかし、実際にDOMツリーに 'contenteditable = true'という' iframe'が見つかりました;-) –