ブラウザで表示しているものを編集する

フォームでtextareaを利用するとテキストエディタ風に編集できますが、この文字に装飾を加えることができません。
検索してみるとcontenteditable="true"という属性があるとわかりました。IE5.5から実装されたようです。
この属性はタグに追加するだけで直接編集できるようになるのですが、何らかのイベントの後にinnerHTMLで内容を置き換えると無効になるというIEらしいバグがIE7でも残っています。IE8は知りません。
この属性はIE以外のブラウザでも利用でき、innerHTMLで置き換えても正しく表示されるブラウザは、Firefox3、Opera9、Safari3.2でした。
他にもあるかもしれませんが、必要な範囲で調べました。
IEが作った属性なのにIEでは動かずに、サードパーティで動くとはこれいかに。
IEのせいでクロスブラウザなコンテンツを作るのが難しく面倒になります。

なお、この属性を検索すると「コンテンツの編集許可」でたくさん出てきますが、この単語で内容がわかるほどエスパーではありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です