我发现在MarkItUp中做标签/缩进没有构建方法吗?所以我做了类似
的事情onTab: {
keepDefault: false,
replaceWith: function(markItUp) {
return miu.openEachLineWith(markItUp, ' ');
}
},
openEachLineWith: function(markItUp, openingStr) {
var textarea = markItUp.textarea,
selStart = textarea.selectionStart,
selEnd = textarea.selectionEnd,
selText = textarea.value.substring(selStart, selEnd),
lines = [],
charsAdded = 0;
lines = selText.split(/\r?\n/);
for (var i = 0, len = lines.length; i < len; i++) {
lines[i] = openingStr + lines[i];
charsAdded += openingStr.length;
}
textarea.selectionEnd = selEnd + charsAdded;
return lines.join('\n');
}
哪个有效,但是,如何在替换文本后设置选择,我希望它选择标签文本,我也更喜欢SO在这里的编辑器的工作方式,当我加粗一些文本时,它选择加粗文本而不是将光标移动到最后,我也可以用markItUp吗?
答案 0 :(得分:0)
我一直在编写一个脚本来执行此操作。这是一个例子:http://jsfiddle.net/timdown/dp2WL/2/
按 Tab 时缩进,按下 Shift + Tab 并且不需要任何库时出现缩进。它没有像我想的那样多的测试,但似乎在所有主流浏览器中都运行良好,包括IE 6.主要代码来自an open source project I'm working on。启用制表符缩进的位在底部:
window.onload = function() {
rangyInputs.init();
rangyInputs.enableTabIndentation(document.getElementById("test"), " ");
};
答案 1 :(得分:0)
您必须在 afterInsert 回调中设置选择(不在 replaceWith 中)