1

私はWYSIWYGエディターに取り組んでいます。基本的な機能がいくつか含まれている必要があるので、自分で実行して問題を回避したいと思います。今では完全に機能していますが、太字ではなく、統一された機能を追加したいと思います...

execCommandを使用すると自動的に機能することはわかっていますが、すべてのブラウザで同じように機能するわけではないので...私の考えは次のとおりです。BOLDボタンを押したら、文字列の環境を確認し、...

  • 選択が開始タグと終了<b>タグの間にある場合は、 。<b>ab||selected||cd</b>に置き換えます。selected</b>selected<b>
  • 選択がタグで開始または終了する場合は、<b>タグを次のよう<b>ab||selected||</b>に置き換えます</b>selected<b>(その後、すべての<b></b>グループを削除します)。
  • 選択がタグで開始および終了する場合は、<b>タグを次のよう<b>||selected||</b>に置き換えます</b>selected<b>(その後、すべての<b></b>グループを削除します)。

<b>content</b>しかし...キャレット/セレクションをINにしただけで、文字列をvarに入れるにはどうすればよいcontentですか?それは可能かもしれません...

更新
置換が常に同じであるのは不思議です。それで、私は本当に私が求めているものを手に入れるべきですか、それとも常にこのようにそれを置き換えるべきですか?

4

1 に答える 1

1

私はWYSIWYGエディターに取り組んでいます。基本的な機能がいくつか含まれている必要があるので、自分で実行して問題を回避したいと思います。今では完全に機能していますが、太字ではなく、統一された機能を追加したいと思います...

独自のWYSIWYGエディターを作成しないでください。

本当に「問題を避けたい」ですか?次に、既存の優れたエディターの1つを使用します(実際には2つしかありません...おそらく3つです)。エディターの作成は非常に難しい作業であり、多くの時間(つまり、数年)、多くの知識と忍耐力(多くの場合:P)が必要です。

「私はWYSIWYGエディターに取り組んでいます」と自分で書くことができます。1年の半分以上の間、私はこれらの「優れたエディター」の1つのコア開発者です。そして、この期間中、私は1つの機能のみを実装しました。非常に重要で非常に複雑ですが、そのうちの1つは数十/数百です。

あなたが抱えているその問題...私も答え始めたくありません。ケーキのように聞こえますが、そうではありません。それはあなたの頭に落ちたときにあなたを殺すことができるレンガの一部です:)。ネイティブは異なり、バグがあるため、実装の重要な部分である選択+範囲の実装のみを列挙し始めます(テストでは最大5k LOC+最小NkLOC)。次に、適切なスタイル処理(適用と削除)impl(最小1k LOC +テスト)が必要です。これは、多くのブロックにまたがるスタイル(テーブル全体を太字にするなど)や、パーツまたはスタイル全体を含むさまざまな選択に注意する必要があるためです。ネイティブのexecCommandはコンテンツを壊してしまうため、避ける必要があります。次に、ツールバーボタンの状態を更新することも検討する必要があります。また、実装を確実に保護するために、さまざまなスタイルタグ(貼り付けなど)を処理することも検討する必要があります。そしてそれは s氷山の一角にすぎません。スタイルを処理できますが、他の何百ものものが壊れています。大手編集者が修正したもの。

とにかく-メインエディタの1つの設定オプションを学び、必要に応じてカスタマイズします。これには、数年ではなく、数時間かかります。

于 2012-07-05T08:14:38.460 に答える