【问题标题】:Getting start and end of selected text from tinyMCE从 tinyMCE 获取所选文本的开始和结束
【发布时间】:2014-03-19 21:43:12
【问题描述】:

我已经为tinyMCE 编辑器配置了自定义上下文菜单。当我在编辑器中右键单击任何单词时,所选单词会突出显示。我可以使用editor.selection.getContent() 获取选定的文本。

  1. 如何在当前位于 tinyMCE 编辑器中的整个文本中获取所选文本的起点和终点?我尝试了editor.selection.getStart()getEnd(),但没有产生足够的结果。

我的任务是获取开始和结束索引并获取前一个单词。我目前正在使用tinymce-3.5.10

【问题讨论】:

    标签: javascript tinymce tinymce-3


    【解决方案1】:

    你需要使用

    var range = editor.selection.getRng()
    

    获取范围。您可以使用

    获取开始和结束容器
    range.startContainer
    range.endContainer
    

    【讨论】:

    • 我是这样使用的:var range = editor.selection.getRng(true); console.log("Range = " + range); console.log("text = " + range.startContainer.textContent); 我得到了选定的文本,但是如何获取开始和结束索引? startContainer 和 endContainer 返回一个 Element 类型的对象。
    • 然后你使用 range.endOffset 和 range.startOffset
    • 谢谢。这有效,但前提是文本不在任何标签内。 startOffsetendOffset 给出(我认为)标签之间的位置。因此,如果我在句子中选择文本“test”:这是一个很好的test。我将得到 0 和 4 作为开始和结束偏移的输出。那么,我唯一的选择是剥离任何标签的文本并重试?
    • 如果您可以触发双击已右键单击的单词,您可能会获得所需的行为。默认浏览器行为是然后自动选择单词。如果这对你不起作用,你将不得不剥离标签并寻找更复杂的词边界,然后相应地重置范围,你就完成了。
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2018-08-01
    • 2012-01-25
    • 2020-07-24
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多