2016-02-21 2 views
1

Я создаю плагин и некоторые операции над плагином, каретка возвращается к 0: 0. Я могу получить позицию каретки сКак установить каретку в определенную позицию в etherpad?

exports.aceKeyEvent = function(hook_name, args, cb) { 
     line = args.editorInfo.ace_caretLine(); 
     char = args.editorInfo.ace_caretColumn(); 
} 

.., но до сих пор я не нашел ничего, чтобы установить каретку. Предположим, что это метод Set Set, но документация не дает мне никаких намеков.

+0

EtherPad/редактор асе создает IFRAME, содержащий документ с тегом: '<тело contenteditable =«истинный»>' может быть, было бы достаточно, чтобы установить каретку в рамках стандартных HTML операций/JavaScript. –

+0

У меня есть намек на то, что [ep_citation] (https://github.com/JohnMcLear/ep_citation/blob/master/static/js/index.js#L175) выполняет задание на этой строке, ... –

ответ

1

Благодаря Джону Мак Лиру решение подошло. example

только после вызова ace_replaceRange будет вызов ace_performSelectionChange установить позицию курсора в качестве acekeyEvent крючка, где мы получаем объект туз с ace_callWithAce.

Однако это работает в hook.

 context.ace.callWithAce(function(ace) { 
      ace.ace_performSelectionChange([line - 1, char], [line - 1, char], false); 
     }, 'padsearch_callstack', true); 
Смежные вопросы