2016/09/21

IEのVersionにより改行コードが異なる問題

新入社員のフジタです。

 

私は今、大企業/大組織向けポータル・グループウェア「INSUITE」という製品の開発チームに所属しています。主に、お客様からの要望や新機能の開発に取り組んでいます。

「INSUITE」には一部の機能にテキスト入力フォームがあり、リッチテキストの入力にFCKEditor/CKEditorを採用しています。

 

今回は、そのテキストエディタモードの切り替えを行う機能にまつわる話です。

テキストのエディタモードを切り替える際、JavaScriptでテキストエリア内の文章をHTMLにエンコードしたり、デコードしたりしているのですが、IE9・IE10では、どういう訳か文章中の改行が消えてしまうのです。

 

〇実際の画面

 

調べた結果。

原因は、どうやらブラウザ毎のテキストエリアが持っている改行コードの違いによるものっぽい。

IEは他ブラウザと処理を分岐させ、”CR + LF”を置換するようにしていたのですが、IE9以降がLFになったため、改行がうまく置換できていなかった。。。

 

≪回避策≫

今回は、以下のようにコード修正をする予定。(JavaScript)

〇修正前

〇修正後

この対応を行うことで解決できそうなことが分かりました!

 

IEのVersionによって動きが異なることを、身に染みて体験しました。

 

これからも、エンジニアが体験したこと・考えたことをブログで紹介していきます!

お楽しみに!