FCKeditor 2.5 버전까지는 이미지 업로드나 각종 설정시 팝업 형태의 다이얼로그 박스로 띄워졌으나
FCKeditor 2.6 이상의 버전에서는 레이어 형태의 다이얼로그 박스로 띄워지도록 되어있다.
그런데 이게 IE6, IE7, IE8 까지는 아무 이상이 없는데 IE9에서는
/fckeditor/editor/fckdialog.html 파일에서 호출 개체가 잘못되었습니다. 줄:813, 문자:4
라는 자바스크립트 오류가 뜨면서 먹통이 되어 버리는 문제가 있다.
파이어폭스, 크롬, 사파리, 오페라 등에서도 문제가 없는데 유독 IE9에서만 이런 오류가 발생한다.
물론 호환성 보기 모드로 돌려버리면 정상적으로 사용할 수 있지만, 근본적인 해결방법이 될 수는 없다.
FCKeditor 2.x는 CKEditor 3.x로 전환하면서 더이상 버전업이나 기술지원을 하지 않고, 심지어 버그 수정도 안하고 있다.
기다리고 기다려도 절대로 안할 모양이다.
CKEditor로 갈아타버리면 그만이겠지 생각하고 함부로 바꿨다간 개털되는 수가 있다.
개인용으로 사용하면 상관 없지만 상업용으로 사용시 제작자가 라이센스를 걸어버리는 센스를 발휘해버렸기 때문이다.
더구나 자체 업로드 기능도 없애버려서 CKFinder를 추가로 붙여야 하는데 얘는 무료가 아예 없다.
그간 FCKeditor를 무료로 배포해서 실컷 사용자들을 끌어 모았으니 3.0부터는 유료로 전환해도 되겠다 싶었던 모양이다.
비용을 지불하고 사용한다면 상관없지만 이걸 돈주고 사서 사이트를 개발해서 납품하는 업체가 얼마나 될까..?
뭐 어쨌든,
아래와 같이 약간만 수정하면 일단 IE9에서는 문제 없이 사용할 수 있다.
/fckeditor/editor/js/fckeditorcode_ie.js 파일을 열어
38번째줄에서
FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};
이부분을 찾아서 아래와 같이 수정한다.
FCKTools.RegisterDollarFunction = function( targetWindow ) {targetWindow.$ = function( id ){ return targetWindow.document.getElementById(id);};};
이렇게 수정하고 나면 IE9에서만 볼수 있었던 오류는 사라지게 된다.