如何在SCEditor textarea中获得当前的插入位置?

时间:2013-08-28 01:17:42

标签: javascript jquery wysiwyg

我在我的网站上使用了jQuery和jQuery,我想知道如何获得相对于textarea / div开头的当前插入位置?

我尝试过这样的事情:

$J('#textarea').sceditor('instance').getRangeHelper().selectedRange().startOffset

但这只能给我相对于当前DOM对象的位置,而不是整个textarea。

我想要完成的是从textarea中删除插入符号后面的所有文本。也许有另一种方法可以做到这一点。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以使用rangeHelper().saveRange()在选择的开头和结尾插入标记,然后使用它们。

e.g:

var sceditor = $("textarea").sceditor("instance");

// Inserts spans with the ID #sceditor-end-start and #sceditor-end-marker
// at the start and end of the current selection
sceditor.getRangeHelper().saveRange();

// Get the DOM node for #sceditor-end-marker and remove all
// nextSiblings and parent nextSiblings from the editor
// which will remove everything after the end of the selection
var node = sceditor.getBody().find('#sceditor-end-marker').get(0);
while (node) {
    while (node.nextSibling)
        node.parentNode.removeChild(node.nextSibling);

    node = node.parentNode;
}

// Restores the selection back to the positions of the
// #sceditor-end-start and #sceditor-end-marker markers
sceditor.getRangeHelper().restoreRange();
sceditor.focus();