Notes/wwwroot/js/site.js

53 lines
1.3 KiB
JavaScript
Raw Normal View History

2022-11-29 15:14:15 +00:00
let saveContent = function ($textarea) {
$textarea = $textarea || $('textarea');
var content = $textarea.val();
$.ajax('/api/save', {
data: content,
contentType: 'text/plain',
type: 'POST'
}).done(function (data) {
// saved!
}).fail(function () {
alert('Could not connect to server. Check your internet connection and try again.');
});
};
$(function () {
// bind on blur event
$('textarea').on('blur', function () {
saveContent($(this));
});
// 20 second interval
setInterval(saveContent, 20000);
//onbeforeunload = saveContent();
// support tab key in textarea
$('textarea').keydown(function (e) {
if (e.keyCode === 9) { // tab was pressed
// get caret position/selection
var start = this.selectionStart;
end = this.selectionEnd;
var $this = $(this);
// set textarea value to: text before caret + tab + text after caret
$this.val($this.val().substring(0, start)
+ '\t'
+ $this.val().substring(end));
// put caret at right position again
this.selectionStart = this.selectionEnd = start + 1;
// prevent the focus lose
return false;
}
});
});