ContentEditableの怪

最近Web上でwordのような編集ができるサイトをよく見かけるようになった。SimpleMachinesForumでも1.1から対応している。JavaScriptライブラリでは、TinyMCEが有名だ。ちなみに、自分はDojoを使ってアプリを開発しているが問題が起きた。

MMLデーターは、メールアドレスと間違えられる!

MML@l64a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&av0a2v15l8dafadbgbdb+ab+da+fgeb+ab+daf+adaf+aga+ab+db+ab+dbgbdbgbda+g+a+c+aeadaeac+aeac-ac+adafadbgbdb+ab+da+gf<a>ecedaf+adaf+adaf+a<dal4>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<g,r1v15>dag2.l8fed4c<a+b+a>e4d1.a4b+4b2.gfe4fga1&a1d4a4g2.fed4c<a+b+al4>ed1.<a.a8rbb1>c.c8r<bb1a.a8rbb1>c.c8r<bb1,l1.rrrrrrrrr1v15l4f.f8rgg1a.a8rgg1f.f8rgg1a.a8rgg1;

どうも、メールアドレスと不完全に変換されるらしく、ゴミデーターが挿入されてしまうのだ。まぁ、MMLを再生する方で、正規表現を使って有効なデーターのみを取り出すようにしているから再生する分には問題ないが・・・。

最初は、dojo側に問題があるのかと思ったが、ソースを見る限り正規表現でメールアドレスを変換しているようなソースすら見つからなかった。お かしい。とりあえず、5日ほど煮詰まったのでWeb制作板で質問してみると・・・。

173 :Name_Not_Found:2008/04/24(木) 00:08:20 ID:???
>>163
Dijit.Textareaはブラウザ組み込みのcontentEditable使っていて、IEで見ると、勝手にリンクになる。
見た目だけなら対象の要素にのCSSに以下を設定すればごまかせるかもよ。
text-decoration: none;
color: black;

なんと、メールアドレスやURLが自動変換されるのは、IE側の挙動らしい。これは盲点。FireFoxでも動いたのは、FireFoxにも同じ仕様が含まれているからだった。IEの場合5.5から実装されたらしいが、HTML4のリファレンス読んでも乗ってなかったので全然知らなかった。

案の定、利便性は認めていても、こういった自動変換を嫌っている人間もいるようで・・・
http://www.ganchiku.com/2006/09/contenteditable.html

しかし、困ったなぁ。まぁ、データーが化けるとは言ってもゴミデーターが付加されるだけなので、スクリプト側でどうにかすると言うこともできなくはないが・・・。