Javascript 如何在ckeditor中获取所选文本的html源

Javascript 如何在ckeditor中获取所选文本的html源,javascript,jquery,html,ckeditor,Javascript,Jquery,Html,Ckeditor,假设我在ckeditor中写了5行,并选择了第2行和第3行。如何获取所选文本的html源。假设代码将始终在延续中被选择。所有选定的html节点-CKEditor 注意:这一切都取决于编辑器中当前的数据结构。如果您选择了一个位于标记内部的文本,并且部分选中了文本,那么将返回完整的标记 注:例如: <p>my ckeditor text</p> enclosed in a p-tag var range = editor.getSelection().getRanges()

假设我在ckeditor中写了5行,并选择了第2行和第3行。如何获取所选文本的html源。假设代码将始终在延续中被选择。

所有选定的html节点-CKEditor

注意:这一切都取决于编辑器中当前的数据结构。如果您选择了一个位于标记内部的文本,并且部分选中了文本,那么将返回完整的标记

注:例如:

<p>my ckeditor text</p> enclosed in a p-tag
var range = editor.getSelection().getRanges()[0] //editor is instance of your ck-editor
var selectedHTML = [];
console.log(range.startPath().elements[0].$, 'first')
selectedHTML.push(range.startPath().elements[0].$)
var selectedSibling = "";
if(range.startPath().elements[0].$ != range.endPath().elements[0].$) {
    selectedSibling = range.startContainer.$.parentNode.nextElementSibling
    while(selectedSibling && (selectedSibling != range.endPath().elements[0].$)) {
        console.log(selectedSibling, 'next')
        selectedHTML.push(selectedSibling)
        selectedSibling = selectedSibling.nextElementSibling
    }
    console.log(range.endPath().elements[0].$, 'last')
    selectedHTML.push(range.endPath().elements[0].$)
}
console.log(selectedHTML, 'selected HTML  Tags')

您可以使用

var sel = window.getSelection();
if (sel.rangeCount) {
    var container = document.createElement("div");
    for (var i = 0, len = sel.rangeCount; i < len; ++i) {
        container.appendChild(sel.getRangeAt(i).cloneContents());
    }
    text = container.innerHTML;
}
var sel=window.getSelection();
如果(选择范围计数){
var container=document.createElement(“div”);
对于(变量i=0,len=sel.rangeCount;i
您选择的HTML将存储在变量getSelectionHtml()中
function getSelectionHtml()
{
editor=CKEDITOR.instances.editor1;
var sel = editor.getSelection();
var ranges = sel.getRanges();
var el = new CKEDITOR.dom.element("div");
for (var i = 0, len = ranges.length; i < len; ++i) {
    el.append(ranges[i].cloneContents());
}
  console.log("OrgHtml:\n"+el.getHtml());
  return el.getHtml();
}
{ editor=CKEDITOR.instances.editor1; var sel=editor.getSelection(); var ranges=sel.getRanges(); var el=新的CKEDITOR.dom.element(“div”); 对于(变量i=0,len=ranges.length;i
使用此函数可获取所选文本的InnerHtml值。我也在使用此函数。

将其复制到另一个ckeditor中,然后按“查看源代码”按钮,否则,除了按“查看源代码”按钮,然后搜索所选文本外,别无其他方法