2011-02-10 6 views
1

기본 툴바가 숨겨진 TinyMCE 에디터가 있는데 그것을 대체하기 위해 office2007 스타일 CSS 미리보기로 단순화했습니다.TinyMCE 커스텀 링크 버튼/커맨드 (jQuery 포함)

코드를 통해 링크를 만드는 데 문제가 있습니다 (CMS에서 생성 한 페이지 목록이 포함 된 jQuery UI 창을로드합니다.이 코드는 내 코드로 URL을 반환합니다).

어떻게 다음대로하고 있어요 :

을 추가하기 TinyMCE에 설치 설정에 다음

execcommand_callback : 'NEWCMS.editor.util.override' 

그래서 수행되는 명령은 기본 동작을 수행하기 전에이 함수를 통해 실행됩니다.

해당 함수에서 'mceLink'이벤트가 있는지 확인합니다 (내 사용자 지정 도구 모음에서 올바르게 명령을 보내면 문제가 없습니다). 하나를 얻으면 사용자가 선택한 URL을 반환하는 창을 표시합니다. 문제가 생겼습니다.

나는

var inst = $('#jbcms_editor_textarea').tinymce(); 
var selectedNode = inst.selection.getNode(); 

을 사용하여 선택한 노드를 얻을 수 있지만, 예상대로의이 단락의 노드를 반환. 내가해야 할 일은

그래서 나는 다음 <a> 노드 것을 사용할 수 있습니다 <a> 태그의 선택을 포장하지만,이 작업을 수행하는 방법을 찾을 수있다. API를 살펴 보았지만 찾고있는 것을 찾을 수 없습니다. TinyMCE가 내부적으로 사용해야하므로 뭔가가 있어야합니다. (나는 또한 TinyMCE 소스를 조사해 보았지만 나를 넘어 섰다.)

누구나 아이디어가 있습니까?

감사

+1

당신이에 대한 링크를 추가 할 _mceInsertLink_ 명령을 사용하여 고려 되세요 현재 선택? –

답변

1

당신이 할 수 선택한 내용은 A-태그로 포장하고 편집기로 다시 쓰기 얻을 :

var inst = $('#jbcms_editor_textarea').tinymce(); 
var content = inst.selection.getContent(); 
inst.execCommand('insertHTML',false, '<a>'+content+'</a>'); #you may add attributes here too (like href) 
+0

완벽하게 작동합니다. 감사합니다! – Josh

+0

도와 주시면 감사하겠습니다. 브렛 (Brett) 명령은 다른 솔루션으로 양보 할 수 있습니다. – Thariama