Мне нужно отлаживать API поставщика (Redactor wysiwyg), и у меня возник вопрос, можно ли определить, каретка стоит до или после изображения?
Когда изображение вставляется, оно приводит к следующей разметке:
<figure>
<img src='/ur/face.png' />
<figcaption>Ur face</figcaption>
</figure>
Я пытаюсь сделать так, чтобы, если курсор находится перед изображением, и пользователь нажимает ввод, изображение (весь блок фигуры) перемещается вниз, чтобы пользователь мог добавить информацию над изображением, а если курсор находится после изображения, курсор пропускает figcaption (весь блок рисунка) и создает новый абзац после изображения, чтобы пользователь мог добавлять элементы после изображения.
Прямо сейчас, если курсор находится перед изображением, блок «p» вставляется в «рисунок», а если курсор находится после изображения, блок «p» вставляется после изображения, но перед «figcaption», что приводит к крушению поезда, особенно на мобильном.
------ Обновлять ------
Если вы наткнетесь на это с той же проблемой, этот патч будет работать (v2.1.2.2):
onEnter: function(e)
{
....
//-----
// !!!!! HACK !!!!!
//-----
/*
// figure
else if (this.keydown.figure)
{
setTimeout($.proxy(function()
{
this.keydown.replaceToParagraph('FIGURE');
}, this), 1);
}
*/
else if (this.keydown.figure)
{
var node = $(this.opts.emptyHtml);
// If after image (1), then we will insert after image
if (1 === document.getSelection().anchorOffset) {
$(this.keydown.figure).after(node);
}
// If before image (0), lets insert before image so users can move images down
else {
$(this.keydown.figure).before(node);
}
this.caret.start(node);
return false;
}
//-----
contenteditable=true
. Так что это может помочь: stackoverflow.com/questions/4811822/ - person Leventix   schedule 23.02.2016console.log($('.redactor-editor').prop('selectionStart'));
не определено. - person Mike Purcell   schedule 23.02.2016