사용자가 특수 문자를 입력하고 탭을 눌러 값을 자동 완성하는 프로젝트를 진행 중입니다. 이 부분은 대부분 작동하지만 캐럿 위치 이전에있는 x 개의 문자를 삭제할 수 있기를 원합니다. 예. |
이 캐럿 인 경우 다음 텍스트가 있습니다. @chr|
.tinyMCE의 캐럿 위치에서 x 문자 수 제거
커서 위치 이전에 3자를 삭제하고 싶습니다. 예 : 나는 단지 @
으로 끝날 것이다.
아래 코드를 사용하여 현재 커서 위치를 가져 오는 방법을 찾았지만 해당 위치에서 x 문자만큼을 삭제할 수있는 방법을 찾지 못했습니다.
var ed = tinyMCE.get("mce_0"); // get editor instance
var editorRange = ed.selection.getRng(); // get range object for the current caret position
var node = editorRange.commonAncestorContainer; // relative node to the selection
range = document.createRange(); // create a new range object for the deletion
range.selectNodeContents(node);
range.setStart(node, editorRange.endOffset - 3); // current caret pos - 3
range.setEnd(node, editorRange.endOffset); // current caret pos
range.deleteContents();
ed.focus(); // brings focus back to the editor
는 "3 제거"버튼을 클릭 한 후, 데모를 사용하는 텍스트 어딘가에 캐럿를 놓고하려면 :
function getCaretPosition()
{
var ed = tinyMCE.get('txtComment'); // get editor instance
var range = ed.selection.getRng().startOffset; // get range
return range;
}
감사합니다. 현상금을 보상 하겠지만 9 시간을 기다려야 해. – Boardy