|
|
|
|
|
для: 12345
(11.01.2007 в 17:06)
| | Это я знаю. Но мне-то надо в конец :))) | |
|
|
|
|
|
|
|
для: ddhvvn
(11.01.2007 в 16:38)
| | (так не совсем правильно делать - лучше через value, чтобы везде работало)
Это вставка в конец текста. "В позицию курсора" означает, что в тот промежуток между символами, где стоит (мигает) курсор. | |
|
|
|
|
|
|
|
для: 12345
(11.01.2007 в 15:39)
| | >Если вставлять в позицию курсора по кнопке, то 2/3 кода придётся оставить :)
Почему?
<button onclick="document.all.txt.innerText += String.fromCharCode(9);">TAB</button> //ну или input
<textarea name=txt cols=50 rows=10>...</textarea>
|
И все! | |
|
|
|
|
|
|
|
для: ddhvvn
(11.01.2007 в 14:39)
| | Если вставлять в позицию курсора по кнопке, то 2/3 кода придётся оставить :). И заодно несложно добавить вставку смайликов им же. | |
|
|
|
|
|
|
|
для: 12345
(11.01.2007 в 14:29)
| | Да уж...
И это все, чтобы всего лишь вставить знак табуляции :))) Ладно попробую.
Но легче сделать над полем кнопку, и по ее нажатию вставлять знак табуляции :)) | |
|
|
|
|
|
|
|
для: ddhvvn
(11.01.2007 в 14:11)
| | Да, ещё в этот код надо добавить восстановление scrollTop в textarea, чтобы прокрутка не прыгала в начало многострочного текста. Вот так:
<textarea value=12345 onkeydown="if((kc=event.keyCode)==9){setTimeout('kc=0',99);st=this.scrollTop;var t=this.value;if(this.selectionStart!=null)this.value=t.substr(0,this.ts=this.selectionStart)+'\t'+t.substr(this.selectionEnd,t.length);else{var selCur=document.selection.createRange();selCur.text='\t';};return!1}"
onkeypress=if(event.keyCode==9){if(!document.all)this.scrollTop=st;this.selectionEnd=this.selectionStart=this.ts+1;return!1}
onblur=if(kc==9)this.focus()>123456</textarea>
<input value="12345-смотреть фокус Оперы">
|
| |
|
|
|
|
|
|
|
для: 12345
(11.01.2007 в 13:04)
| | Ок. Спасибо. Разобрался | |
|
|
|
|
|
|
|
для: SHAman
(11.01.2007 в 12:11)
| | В смысле, в FF не работает? Тогда для него
<textarea value=12345 onkeydown=if(event.keyCode==9){this.value+=String.fromCharCode(9);return!1}
onkeypress=if(event.keyCode==9)return!1>
|
А Опера славится своей неподкупностью (несогласием отменять стандартные действия), и здесь тоже. Поэтому для неё при blur надо возвращать фокус (у Токмакова тоже). Да ещё, как оказалось, пододвигать курсор (будет работать от 8-й версии).
Наконец, переписал, чтобы работало со вставкой внутри строки, воспользовавшись приведённой в коде Токмакова наводкой на методы (а то самому смотреть было лениво). Это selectionStart и document.selection.createRange.
<textarea value=12345 onkeydown="if((kc=event.keyCode)==9){setTimeout('kc=0',99);var t=this.value;if(this.selectionStart!=null)this.value=t.substr(0,this.ts=this.selectionStart)+'\t'+t.substr(this.selectionEnd,t.length);else{var selCur=document.selection.createRange();selCur.text='\t';};return!1}"
onkeypress=if(event.keyCode==9){this.selectionEnd=this.selectionStart=this.ts+1;return!1}
onblur=if(kc==9)this.focus()>123456</textarea>
<input value="12345-смотреть фокус Оперы">
|
У Токмакова (http://www.artlebedev.ru/tools/technogrette/js/allow_tab_key/) скрипт делает ещё одно недокументированное действие: если кликать по табу при выделенной области, в начале каждой строки добавляются табы, если кликать Shift-Tab - убираются. Для простоты и соовтетствия минимальным требованиям я этого не делал. | |
|
|
|
|
|
|
|
|
для: ddhvvn
(11.01.2007 в 10:24)
| | Ну что? HELP ME :)))) | |
|
|
|
|