3

私は contentEditable と execCommand をいじっていて、ボタンが押されたときに、

  • contentEditable でテキストが選択されている場合、太字になります

  • contentEditable でテキストが選択されていない場合、ボタンを押した後に contentEditable に入力されたテキストは太字になります。

次のJavascriptコマンドを使用してみました:

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

しかし残念なことに、それは選択されたテキストを太字にするだけです。テキストが選択されておらず、ボタンを押した後に入力を開始すると、テキストは太字で表示されません。

contentEditable で Ctrl+B を押すと、まさにやりたいことを実行できることに気付きましたが、これは Javascript を使用して (Javascript で Ctrl+B をシミュレートせずに) 実行したいと考えています。

4

2 に答える 2

2

実際には、document.execCommand()呼び出しは希望どおりに実行され(イベントハンドラーから呼び出すことでこれを証明できますkeydown)、問題のあるコマンドをトリガーするために使用しているボタンやその他のものの影響であると思われます。

于 2011-03-21T23:26:50.233 に答える
0

Javascripts Range は、選択したテキストをチェックアウトできます。このリンクを参照してください。これを使用して、選択したテキスト (開始ノード、終了ノード、オフセットなど) を取得できます。新しいテキストを太字にしたい場合は<p>、css で太字を指定した new created に追加するだけです。しかし、これはIEでは機能しない可能性があります...

于 2011-03-21T21:17:21.457 に答える