我希望QuillJS能识别出新的线条而且我无法弄清楚如何......
例如:我有4行想要放一个" *"在每一行的前面和末尾,除了空行之外。
示例:
* line1 *
空
* line3 *
* line4 *
提前致谢! : - )
编辑: 这是我的代码的片段/当前状态
var boldButton = document.querySelector('.ql-bold');
boldButton.addEventListener('click', function() {
var sel = quill.getSelection();
if (sel) {
quill.insertText(sel.index, "*");
quill.insertText(sel.index+sel.length+1, "*");
quill.setSelection({index:sel.index+1, length:sel.length});
}
})
答案 0 :(得分:1)
这是一个粗糙的解决方案,但有效。
它查找NewLine符号(在我的情况下为\n
)并计算行长:
boldButton.addEventListener('click', function() {
var sel = quill.getSelection();
var text = quill.getText(sel.index, sel.length);
if (sel) {
// GET ALL LINE LENGTH (MAY ADAPT FOR LINES WITH ONLY SPACES/TABS/...)
var linesLengths = text.split("\n").map(function(line){
return line.length;
});
var startPosition = sel.index;
for(var idx = 0; idx < linesLengths.length; idx++){
var currentLineLength = linesLengths[idx];
// ONLY MARK LINES WITH SOME CONTENT
if(currentLineLength > 0){
quill.insertText(startPosition, "*");
quill.insertText(startPosition + currentLineLength + 1, "*");
// PREPARE NEW STARTPOSITION
startPosition += currentLineLength + 2;
}
// COUNT THE NEWLINE SYMBOL
startPosition++;
}
}
});
可以优化,但我留给了读者。