在CKEDITOR 5中获取突出显示/选定的文本

问题描述 投票:0回答:2

我有我的内联CKeditor

let globalEditor;

InlineEditor.create(document.querySelector("#textarea"), {
        toolbar: {
            items: ['heading', '|', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', 'blockQuote', 'insertTable', 'undo', 'redo']
        }
}).then(editor => {
        globalEditor = editor;
}).catch(err => {
    console.error(err.stack);
});

我还有一个按钮,应该可以在 ckeditor 中获取突出显示/选定的文本

 $("#btnAddTag").click(function (e) {
        e.preventDefault();
        var editor = globalEditor;

        var getText = editor.getSelection().getNative(); //I tried this but the *getSelection* is undefined
 });

有什么建议吗?

javascript jquery ckeditor ckeditor5
2个回答
14
投票

问题已经解决了

const editor = globalEditor;
const selection = editor.model.document.selection;
const range = selection.getFirstRange();

for (const item of range.getItems()) {
    console.log(item.data) //return the selected text
}  

0
投票

这在我的打字稿代码中不起作用我试图获取文本但我没有得到任何文本。我的代码如下:

  const range = editor.model.document.selection.getFirstRange();
            let selectedText =''
            if (range) {
                for (const item of range.getItems()) {
                    if (item.is("$text") && "data" in item) {
                      selectedText += (item as { data: string }).data;
                    }
                  }
               console.log('selected text::::',selectedText);
            }

在这里,每次我得到空字符串。有人可以帮助我如何在 ckEditor 中获取选定的文本吗? 谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.