6

私は非常にシンプルなリッチ テキスト エディターに取り組んでいます。iframe に適用される designMode = 'On' の使用について読んだことがあります。次に、これを使用して太字のテキストを作成します。

nameOfiframe.document.execCommand('bold',false,null);

動作はしますが、execCommand() は太字のテキストを作成するb代わりにタグを使用します。strongいくつかの高度なリッチ テキスト エディターを調べてみましたが、それらはすべてタグstrongの代わりに使用されていました。b

これを修正する簡単な方法はありますか?それとも、 execCommand() はまったく使用するのに適していませんか?

ありがとう!

4

2 に答える 2

4

残念ながら、document.execCommand()動作はブラウザによって異なります。@ 1UnitedPowerの回答が言及しているように、document.execCommand()セマンティック効果ではなくプレゼンテーション効果を目的としています。

可能なオプションは次の 2 つです。

  1. 独自のコードを記述して、太字のスタイルを設定します。残念ながら、これを適切に行うことは自明ではありません。CKEditor や TinyMCE などの主要な WYSIWYG エディターがどのようにそれを行うかを見ることができます。
  2. を呼び出した後、いくつかのコードを実行して<b>要素を要素に変換します。これはより簡単なオプションのようです。それが重要な場合は、変換中に選択を保持する何らかの方法が必要になります。<strong>document.execCommand()
于 2013-02-17T20:47:56.020 に答える
0

execCommand最初のパラメーターとして html-tag-name を受け入れませんが、MIDAS コマンドを受け入れます。使用可能なコマンドのリストについては、https://developer.mozilla.org/en-US/docs/Midasを参照してください。

wysiwyg-editor が目指すものを対象としているため、この動作は望ましいものです。WYSIWYG はセマンティックではなく、スタイル上の目的で使用されます。太字のテキストの背後にある意味を判断することはできません。

ただしinsertHtmlstyleWithCSSコマンドを見てください。

于 2013-02-17T12:58:37.093 に答える