contenteditable
HTML 内の要素については奇妙なケースがあります。お客様が事前に作成されたテンプレート (私たちによって) を読み込んで、そのテンプレートを必要に応じて (ほとんどの場合) 変更できるリッチ テキスト エディターがあります。
<br/>
テンプレートの一部は、直接編集できないようにマークされていますが、削除することはできます。ただし、そのような要素の 1 つが行の最初の要素 (タグの直後) である場合に問題が発生するようです。DEL
上の行にヒットします。そのためcontenteditable=false
、ブラウザは ではなく、<br/>
編集不可能なスパン全体を削除するようです。
サンプルHTMLはこんな感じ
<div contenteditable=true>
<span>blah blah blah</span><br/>
<span contenteditable="false">You cant edit this value directly</span>
</div>
ユーザーがカーソルを , の後に置くblah blah blah
とDEL
、改行ではなく、次の編集可能なコンテンツ全体が削除されます。
この動作を修正する方法はありますか?
カーソル位置を検出しようとしたり(rangyを使用して)、一時スペースを挿入したりなどでだまされましたが、編集不可能なタグが以前のライン。
エディタの使用を Chrome のみに制限しているため、IE や FF について心配する必要はありません。