Backport(バックポート) #2370
Minoru Takai さんが約13年前に更新
h3. 概要 TinyMCE (tiny_mce) の文字装飾機能について、IE9 ではプレビューモードが正常に動作しない。なお、この問題は 文字装飾機能について、IE9 でプレビューモードを利用すると以下のような現象が発生し、正常に動作しなくなる。 この現象は OpenPNE 2 でも発生する。 h5. 発生する現象 * 太字・斜体のような文字装飾ボタンを押しても装飾が機能しない 太字・斜体のような文字装飾ボタンを押しても装飾が反映されない * 文字色パレット・絵文字パレットは表示されるが、色や絵文字を選んで押下しても装飾が反映されない * テキストモードに戻せない * 文字の表示サイズが他のブラウザ(IE8 など)に比べて小さい これらは後述する原因によるものであり、よりマクロな問題は「IE9 で文字装飾機能(TinyMCE)が動作しない」というものである。 h4. 文字の表示サイズがIE8の頃に比べて小さい ** !pc_frontend-diary-edit-decoration_IE.png! ** (IE9のブラウザモードの変更で文字サイズを比較した画像) h5. IE9のスクリプトデバッグモードを使用した際に表示されるエラー OpenPNE 3 の場合、テキストモード→プレビューモードの切替時に以下のエラーが表示される。 <pre> SCRIPT438: オブジェクトは 'recalc' プロパティまたはメソッドをサポートしていません。 tiny_mce.js, 行 1 文字19997 </pre> このエラーが表示された直後にブラウザがフリーズするため、文字装飾ボタンをクリックした場合などのエラーは確認していない。 (蛇足)OpenPNE 2 の場合は上と同じタイミングで以下のエラーが表示される。 <pre> SCRIPT438: オブジェクトは 'parentElement' プロパティまたはメソッドをサポートしていません。 tiny_mce.js?r7140, 行 1 文字37913 </pre> h3. 対象バージョン 確認バージョン h5. OpenPNE 3 系の全てのバージョン。 この問題は TinyMCE 側にあり、 IE9 独自の問題に対応したバージョンの TinyMCE を用いていないことが * OpenPNE でこの問題が生じる原因である。ただし OpenPNE 側にも問題があるので併せて修正する。 3.6beta13 * (OpenPNE 2.14.9) h3. 修正方針 h5. Webブラウザ 2009年10月14日に OpenPNE-3.1.4 で TinyMCE-3.2.7 が組み込まれている( commit:e24edf33 )。 TinyMCE-3.2.7 では IE9 に対応しておらず、上記のような問題が生じる。 Windows 7 (64bit) InternetExplorer 9.0.8112.16421 2011年8月現在、 TinyMCE は 3.4.4 が最新版として公開されており、このリリースまでに IE9 に対する修正がいくつか取り込まれている。 h3. 関連している? * TinyMCE を 3.4.4 にバージョンアップすることで対応する。 * ただし、 TinyMCE-3.2.7 の実装を前提に記述した OpenPNE 側のコードがあるため、バージョンアップ後に OpenPNE 側で拡張した部分を修正する必要がある。 #1297 IE7,8 tinyMCEで文字装飾が反映されない