1

次のように編集可能な iframe にテキストを挿入するために、javascript で execCommand を使用しています。

element.execCommand("insertHTML",false,"some text");

カーソルの左側の最初の文字の代わりにそのテキストを挿入する方法を知っている人はいますか? 上記を行う前にバックスペースを押すのと同じ効果ですか?

4

1 に答える 1

2

キーストロークを編集可能な iframe に送信する簡単な方法はないようです。そのため、おそらく何らかの回避策を見つける必要があります。これを行う最も簡単な方法は、iframe からコンテンツを取得し、それらを操作してから、iframe に戻すことです。

例: iframe 内のすべてのテキストを次のように選択します

var selection = element.execCommand("selectAll");

最後の文字を削除するには - スライス選択

selection = selection.baseNode.data.slice(0, -1)

すべてのコンテンツを削除する

element.execCommand("Delete")

スライスした選択範囲と新しいテキストを追加

element.execCommand("insertHTML",false,selection);
element.execCommand("insertHTML",false,"some text");

参考文献:

  1. http://msdn.microsoft.com/en-us/library/ie/ms533049(v=vs.85).aspx
  2. https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla

PS編集可能なiframeまたは選択オブジェクトに非常に精通しているため、テキストに特殊文字のhtmlがある場合、これよりもはるかに複雑になる可能性があります。また、ブラウザごとに微調整する必要がある場合もあります。

于 2012-01-21T05:39:24.900 に答える