Это будет означать немало работы и настройки, но вы можете использовать jQuery Caret , плагин jQuery.
Вы можете использовать его как для установки, так и для установки позиции курсора.
Прежде всего, вы можете отловить событие keydown в вашей текстовой области
<textarea id="myTextArea" value="some text" ></textarea>
с jQuery при проверке стрелки вверх, используя
$("#myTextArea").bind("keydown", function(e) {
var code = e.keyCode || e.which;
if(code == 38) { // Arrow up
.... code here ....
}
});
Затем вы должны использовать Caret для написания кода, который 1. запоминает последнюю позицию курсора, и 2. если нажата клавиша со стрелкой вверх и результирующая позиция равна 0, вы сбрасываете позицию курсора до последней запомненной. А затем напишите аналогичный код для нижней / нижней части.
Извините, я не могу запрограммировать это, но что-то вроде этого должно работать.