1
按标签我的意思是很多空间,所以,当我在编辑器中编写时,我希望能够按下键盘上的Tab键并获取空格而不是在元素之间切换。如何在我的自定义wysiwyg编辑器中添加“选项卡”功能?
按标签我的意思是很多空间,所以,当我在编辑器中编写时,我希望能够按下键盘上的Tab键并获取空格而不是在元素之间切换。如何在我的自定义wysiwyg编辑器中添加“选项卡”功能?
有一些插件可以用于制表符。这是相当全面的one。如果你只是想要一些代码,你可以插入你的脚本,我写了一些简单的东西。
var shift = false;
function codebox(element) {
element.addEventListener("keyup", function(event) {
if (event.keyCode == 16)
shift = false;
});
element.addEventListener("keydown", function(event) {
if (event.keyCode == 16) {
shift = true;
return;
}
if (event.keyCode == 9) {
var start = this.selectionStart;
var end = this.selectionEnd;
var lead = this.value.substr(0, start);
var chunk = this.value.substr(start, end - start);
if (!shift) {
if (start == end)
lead = lead + "\t";
else {
lead = ("\n" + lead).split("").reverse().join("").replace(/\n/, "\t\n").split("").reverse().join("").substr(1);
chunk = chunk.replace(/\n/g, "\n\t");
if (chunk.substr(-2) == "\n\t")
chunk = chunk.substr(0, chunk.length - 1);
}
} else {
if (chunk.split("")[0] == "\t") {
lead = lead + "\t";
chunk = chunk.substr(1);
}
lead = ("\n" + lead).split("").reverse().join("").replace(/\t\n/, "\n").split("").reverse().join("").substr(1);
chunk = chunk.replace(/\n\t/g, "\n");
}
this.value = lead + chunk + this.value.substr(end);
this.selectionStart = lead.length;
this.selectionEnd = lead.length + chunk.length;
event.preventDefault();
}
});
}
要使用它,只要做到这一点:
new codebox(myTextAreaElement);
既然你想空间,包裹事件处理程序与过程,空格和制表符之间的转换。
哪个所见即所得编辑器? – 2012-02-02 15:55:52
你在说什么编辑?大约有一亿美元。 – Pointy 2012-02-02 15:55:53
富文本编辑器 – siaooo 2012-02-02 15:56:53