DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人 > 
  3. タイトル

IE10 と CKEditor

2013/03/23

IE10 と CKEditor

 

Windows 8 がリリースされ、IE10 を利用するケースが増えてきたが、CKEditor が IE 10 でうまく動作しないことがある。現在判明している現象は下記の通り。

  • V2.x だと、CKEditor の入力欄にカーソルが入らないので入力自体ができない / 既存のデータが表示されない
  • V3.x だと、CKEditor の入力欄にカーソルは入り文字入力もできるが、改行できない

とりあえず上記の問題は、IE10 の [ツール]-[互換表示] をチェックして有効にすると解決する。

CKEditor 側で対応する場合は、既存の ckeditor フォルダの中身をまるごと 4.0.2 に変更することで解決する。

ただし、CKEditor と CKFinder を組み合わせて使っている場合、CKFinder が V2.1 およびそれ以前バージョンの場合、IE10 でサーバーブラウザを起動すると応答が無くなってしまうので CKFinder もバージョンアップする必要がある。(2.4 なら IE10 で動作することを確認済み。)

CKFinder のバージョンアップに際しては、CKFinder の設定ファイル config.php のバックアップを取っておき、旧 config.php に適用されている当該サイト用の設定を新しい config.php に反映させるのを忘れないこと。

よくある設定の例:

// CakePHP との協調動作用設定 (Auth 認証で利用)
session_name("CAKEPHP");
session_start();

// 認証状態チェック関数の修正 (CakePHP の Auth コンポーネントとの協調動作)
function CheckAuthentication()
{
	// WARNING : DO NOT simply return "true". By doing so, you are allowing
	// "anyone" to upload and list the files in your server. You must implement
	// some kind of session validation here. Even something very simple as...

	// return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];

	// ... where $_SESSION['IsAuthorized'] is set to "true" as soon as the
	// user logs in your system. To be able to use session variables don't
	// forget to add session_start() at the top of this file.

	if ( isset($_SESSION['Auth']['Admin']) && !empty($_SESSION['Auth']['Admin']) )	// CakePHP の Admin テーブルによる Auth 認証の確認
	{
		return TRUE;
	}
	return false;
}

// ベース URL の変更
$baseUrl = '...';	// Cake の見かけ上の URL パス。サイト上の実パスは $baseDir に定義する

// サイト上の実パスの変更
$baseDir = realpath(dirname(__FILE__)) . '/userfiles/';	// 例:このファイルからの相対位置にある userfiles を指定する

等。

この記事は加藤 正人さんが書いています!

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。