SE2BasicCreator.js 5.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. function createSEditor2(elIRField, htParams, elSeAppContainer){
  2. if(!window.$Jindo){
  3. parent.document.body.innerHTML="진도 프레임웍이 필요합니다.<br>\n<a href='http://dev.naver.com/projects/jindo/download'>http://dev.naver.com/projects/jindo/download</a>에서 Jindo 1.5.3 버전의 jindo.min.js를 다운로드 받아 /js 폴더에 복사 해 주세요.\n(아직 Jindo 2 는 지원하지 않습니다.)";
  4. return;
  5. }
  6. var elAppContainer = (elSeAppContainer || jindo.$("smart_editor2"));
  7. var elEditingArea = jindo.$$.getSingle("DIV.husky_seditor_editing_area_container", elAppContainer);
  8. var oWYSIWYGIFrame = jindo.$$.getSingle("IFRAME.se2_input_wysiwyg", elEditingArea);
  9. var oIRTextarea = elIRField?elIRField:jindo.$$.getSingle("TEXTAREA.blind", elEditingArea);
  10. var oHTMLSrc = jindo.$$.getSingle("TEXTAREA.se2_input_htmlsrc", elEditingArea);
  11. var oTextArea = jindo.$$.getSingle("TEXTAREA.se2_input_text", elEditingArea);
  12. var sEditorMode = "open";
  13. if(!htParams){
  14. htParams = {};
  15. htParams.fOnBeforeUnload = null;
  16. }
  17. htParams.elAppContainer = elAppContainer; // 에디터 UI 최상위 element 셋팅
  18. htParams.oNavigator = jindo.$Agent().navigator(); // navigator 객체 셋팅
  19. var oEditor = new nhn.husky.HuskyCore(htParams);
  20. oEditor.registerPlugin(new nhn.husky.CorePlugin(htParams?htParams.fOnAppLoad:null));
  21. oEditor.registerPlugin(new nhn.husky.StringConverterManager());
  22. var htDimension = {
  23. nMinHeight:205,
  24. nMinWidth:parseInt(elIRField.style.minWidth, 10)||570,
  25. nHeight:elIRField.style.height||elIRField.offsetHeight,
  26. nWidth:elIRField.style.width||elIRField.offsetWidth
  27. };
  28. var htConversionMode = {
  29. bUseVerticalResizer : htParams.bUseVerticalResizer,
  30. bUseModeChanger : htParams.bUseModeChanger
  31. };
  32. var aAdditionalFontList = htParams.aAdditionalFontList;
  33. oEditor.registerPlugin(new nhn.husky.SE_EditingAreaManager("WYSIWYG", oIRTextarea, htDimension, htParams.fOnBeforeUnload, elAppContainer));
  34. oEditor.registerPlugin(new nhn.husky.SE_EditingArea_WYSIWYG(oWYSIWYGIFrame)); // Tab Editor 모드
  35. oEditor.registerPlugin(new nhn.husky.SE_EditingArea_HTMLSrc(oHTMLSrc)); // Tab HTML 모드
  36. oEditor.registerPlugin(new nhn.husky.SE_EditingArea_TEXT(oTextArea)); // Tab Text 모드
  37. oEditor.registerPlugin(new nhn.husky.SE2M_EditingModeChanger(elAppContainer, htConversionMode)); // 모드간 변경(Editor, HTML, Text)
  38. oEditor.registerPlugin(new nhn.husky.SE_PasteHandler()); // WYSIWYG Paste Handler
  39. oEditor.registerPlugin(new nhn.husky.HuskyRangeManager(oWYSIWYGIFrame));
  40. oEditor.registerPlugin(new nhn.husky.Utils());
  41. oEditor.registerPlugin(new nhn.husky.SE2M_UtilPlugin());
  42. oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGStyler());
  43. oEditor.registerPlugin(new nhn.husky.SE2M_Toolbar(elAppContainer));
  44. oEditor.registerPlugin(new nhn.husky.Hotkey()); // 단축키
  45. oEditor.registerPlugin(new nhn.husky.SE_EditingAreaVerticalResizer(elAppContainer, htConversionMode)); // 편집영역 리사이즈
  46. oEditor.registerPlugin(new nhn.husky.DialogLayerManager());
  47. oEditor.registerPlugin(new nhn.husky.ActiveLayerManager());
  48. oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGStyleGetter()); // 커서 위치 스타일 정보 가져오기
  49. oEditor.registerPlugin(new nhn.husky.SE2B_Customize_ToolBar(elAppContainer)); // 상단 툴바 (Basic)
  50. oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGEnterKey("P")); // 엔터 시 처리, 현재는 P로 처리
  51. oEditor.registerPlugin(new nhn.husky.SE2M_ColorPalette(elAppContainer)); // 색상 팔레트
  52. oEditor.registerPlugin(new nhn.husky.SE2M_FontColor(elAppContainer)); // 글자색
  53. oEditor.registerPlugin(new nhn.husky.SE2M_BGColor(elAppContainer)); // 글자배경색
  54. oEditor.registerPlugin(new nhn.husky.SE2M_FontNameWithLayerUI(elAppContainer, aAdditionalFontList)); // 글꼴종류
  55. oEditor.registerPlugin(new nhn.husky.SE2M_FontSizeWithLayerUI(elAppContainer)); // 글꼴크기
  56. oEditor.registerPlugin(new nhn.husky.SE2M_LineStyler());
  57. oEditor.registerPlugin(new nhn.husky.SE2M_ExecCommand(oWYSIWYGIFrame));
  58. oEditor.registerPlugin(new nhn.husky.SE2M_LineHeightWithLayerUI(elAppContainer)); // 줄간격
  59. oEditor.registerPlugin(new nhn.husky.SE2M_Quote(elAppContainer)); // 인용구
  60. oEditor.registerPlugin(new nhn.husky.SE2M_Hyperlink(elAppContainer)); // 링크
  61. oEditor.registerPlugin(new nhn.husky.SE2M_SCharacter(elAppContainer)); // 특수문자
  62. oEditor.registerPlugin(new nhn.husky.SE2M_FindReplacePlugin(elAppContainer)); // 찾기/바꾸기
  63. oEditor.registerPlugin(new nhn.husky.SE2M_TableCreator(elAppContainer)); // 테이블 생성
  64. oEditor.registerPlugin(new nhn.husky.SE2M_TableEditor(elAppContainer)); // 테이블 편집
  65. oEditor.registerPlugin(new nhn.husky.SE2M_TableBlockStyler(elAppContainer)); // 테이블 스타일
  66. oEditor.registerPlugin(new nhn.husky.SE2M_AttachQuickPhoto(elAppContainer)); // 사진
  67. oEditor.registerPlugin(new nhn.husky.MessageManager(oMessageMap));
  68. oEditor.registerPlugin(new nhn.husky.SE2M_QuickEditor_Common(elAppContainer)); // 퀵에디터 공통(표, 이미지)
  69. oEditor.registerPlugin(new nhn.husky.SE2B_CSSLoader()); // CSS lazy load
  70. oEditor.registerPlugin(new nhn.husky.SE_OuterIFrameControl(elAppContainer, 100));
  71. oEditor.registerPlugin(new nhn.husky.SE_ToolbarToggler(elAppContainer, htParams.bUseToolbar));
  72. oEditor.registerPlugin(new nhn.husky.SE2M_Accessibility(elAppContainer)); // 에디터내의 웹접근성 관련 기능모음 플러그인
  73. return oEditor;
  74. }