IE11 対応でundoUnitのコマンド実行は不要だったので削除しました。

以下、IE11対応コードの説明です。

IE11ではdocument.selectionが無いため、
文字列の挿入はgetSelection().getRangeAt(0)で取得したレンジオブジェクトに、
TextNodeを追加することで文字列を挿入しています。

また、空白文字はユニコード文字に変換しないと反映されないため、追加時に置換しています。
また、createTextNodeに渡す引数の改行は無視されてしまうため、改行箇所に<br>を挿入するようにしました。