Terkadang penting menetapkan batas skrip.
Anda dapat menggunakan kode berikut untuk menonaktifkan penyisipan jika nilai editor lebih panjang dari batas tertentu
var doc = editor.session.doc
doc.applyAnyDelta = doc.applyAnyDelta || doc.applyDelta
doc.applyDelta = function(delta) {
if (delta.action == "insert" && this.$maxLength
&& this.getValue().length > this.$maxLength) {
return false;
}
return this.applyAnyDelta(delta);
}
doc.$maxLength = 20
Bisakah Anda memberi tahu dalam kasus apa Anda memerlukan ini, untuk membantu kami memahami apakah ini perlu menjadi bagian dari rangkaian opsi default atau ekstensi.
Tentu saja!! Jadi, dalam aplikasi kami, skrip disimpan di database dan ada batasan untuk kolom ini. Saya pikir ini seharusnya sangat umum karena editor sebenarnya sangat digunakan dalam aplikasi web. Di sisi lain, skrip di atas harus menyelesaikan masalah saya ... terima kasih
Untuk memastikan panjang yang dihasilkan adalah yang dibatasi, dan untuk memungkinkan pasta besar dengan memangkas ujungnya, coba edit ini:
var doc = editor.session.doc
doc.applyAnyDelta = doc.applyAnyDelta || doc.applyDelta
doc.applyDelta = function(delta) {
let joinedLines = delta.lines.join("\n")
if (delta.action == "insert" && this.$maxLength
&& this.getValue().length + joinedLines.length > this.$maxLength) {
let newPasteLength = this.$maxLength - this.getValue().length
if(newPasteLength > 0) {
delta.lines = joinedLines.substr(0, newPasteLength).split("\n")
if(delta.lines.length == 1 && delta.start.row == delta.end.row) {
delta.end = {
row: delta.start.row,
column: delta.start.column+newPasteLength
}
} else {
delta.end = {
row: delta.start.row+delta.lines.length,
column: delta.lines[delta.lines.length-1].length
}
}
} else return false;
}
return this.applyAnyDelta(delta);
}
doc.$maxLength = 20
Mungkin bermanfaat untuk lebih mengoptimalkannya untuk produksi, tetapi saya harap ini membantu seseorang!
Juga, saya mengalami kasus penggunaan yang sama dengan @christianbs :)
Komentar yang paling membantu
Untuk memastikan panjang yang dihasilkan adalah yang dibatasi, dan untuk memungkinkan pasta besar dengan memangkas ujungnya, coba edit ini:
Mungkin bermanfaat untuk lebih mengoptimalkannya untuk produksi, tetapi saya harap ini membantu seseorang!
Juga, saya mengalami kasus penggunaan yang sama dengan @christianbs :)