6

ExecCommand は、iFrame 内のテキストを太字にしたり、斜体にしたり、下線を引いたりする方法を提供します。

<cite>ただし、 or<strong>またはを作成するオプションがありません<em>(formatBlockブロック要素のみがあり、インライン要素はありません)。

作成に ExecCommand 関数を使用したいの<cite>ですが、これを実現する方法はありますか? そして明らかに、同じ選択で2回使用すると失敗するboldようなものではなく、場合のように完璧な解析を維持したいと考えています。surroundContents

ExecCommand bold コマンドの定義、または既存のコマンドを使用して完璧に追加する方法を探しています<cite>。助言がありますか?ブラウザの機能から抽出できませんでした。それをしようとすると、「ネイティブコード」と表示されます。

4

2 に答える 2

6

以前のコメントの 1 つで CKEditor について言及されていることがわかりました :) これが、コマンドの実行を処理する方法です。

  • すべて手作業で行っています。ご覧のとおり、DOM API は十分ではなく、実装はブラウザーによって異なります。そのため、あるブラウザーでスタイルが適用されたテキストを含む HTML は他のブラウザーでは機能しないと思います (ただし、これは確認していません)。strongおよび 2 番目bまたはspanインライン スタイルを使用)。
  • まず、カスタムの RangeSelectionの実装が必要です。それらを使用することはできませんが、クールなRangy ライブラリがあります。
  • 次に必要なコンポーネントは、スタイルを適用、削除、およびチェックするための一連のメソッドです。これが私たちの implです。
  • そして、最後のコンポーネントは自明なカスタム コマンドです。これは、W3C の API とアイデアを模倣すると便利だからです。
于 2012-08-28T19:33:11.973 に答える
0

私は 1 年前にこの問題を調査しましたが、ネストされたタグで EC の代わりに正規表現を使用する以外に解決策を見つけることができませんでした。ExecCommand を使用せずにテキスト エディターを開発しました。

于 2012-08-28T11:45:39.267 に答える