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