我需要将选择内容包装在注释节点中,以便以后可以对其进行解析。
此脚本在CK-Editor插件中执行,但是我相信selection
和range
的工作方式是JavaScript固有的。
我可以在范围的开头插入注释节点,但是我不知道如何在选择的末尾添加注释节点。
我当前的代码是:
var selection = editor.getSelection();
var ranges = selection.getRanges();
var start_node = 'parsing_start';
var end_node = 'parsing_end';
var start_comment = new CKEDITOR.dom.comment(start_node);
var end_comment = new CKEDITOR.dom.comment(end_node);
ranges[0].insertNode(start_comment);
ranges[0].nextSibling().insertNode(end_comment); // how to do this???
答案 0 :(得分:1)
尝试此操作以在原始选择之后选择一个新的空白范围。唯一的缺点是您将丢失原始选择。
var selection = editor.getSelection();
var range = selection.getRanges()[0];
var start_node = 'parsing_start';
var end_node = 'parsing_end';
var start_comment = new CKEDITOR.dom.comment(start_node);
var end_comment = new CKEDITOR.dom.comment(end_node);
range.insertNode(start_comment);
var endNode = range.endContainer;
var endOffset = range.endOffset;
range.setStart(endNode, endOffset);
range.setEnd(endNode, endOffset);
selection.selectRanges([range]);
range.insertNode(end_comment);
editor.focus();