Замена текста при вводе в объект с contenteditable='true'
Есть объект <span contenteditable='true' >__________</span>
Когда он получает фокус, в него можно вводить текст,он он ВСТАВЛЯЕТСЯ, есле наажать клавишу Ins текст ЗАМЕНЯЕТСЯ, можно ли так сделать,чтоб он заменялся всегда? |
<html> <head> <style> #span{ position:fixed; } </style> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body><b> <span id='span' contenteditable='true'>LOOOOOOOOOOL</span></b> <script> document.onkeydown = function(e){ e = e || window.event; if (e.keyCode == 45){ span = document.getElementById('span'); span.innerHTML = 'Текст'; } } </script> </body> </html> |
Dim@,
ты человека не понял... ему не нужно заменять текст при нажатии клавиши Insert ему нужно что бы поле ввода вело себя так, как будто нажата клавиша Insert |
devote,
хм, насколько я знаю она действует в сочетании с Shift и Ctrl;) |
Dim@,
открой MS Word, напиши что-нибудь, поставь каретку в центре, нажми Ins, и печатай. Теперь понял? |
Dim@,
ему нужно что-то вроде этого, но только для элемента с contenteditable <!DOCTYPE html> <html> <head></head> <body> <textarea id="area" style="width: 100%">________________________________________________________</textarea> <script type="text/javascript"> document.getElementById( 'area' ).onkeypress = function( e ) { e = e || window.event; var target = e.target || e.srcElement, text = target.value, caretPos = 0; if ( e.which == null ) { e.which = e.charCode != null ? e.charCode : e.keyCode; } if ( e.which == 9 || e.which == 8 || e.which == 0 || /[\x21\x22\x23\x24\x25\x26\x27\x28\x2E]/.test( String.fromCharCode( e.keyCode ) ) ) { return; } if ( document.selection ) { target.focus(); var sel = document.selection.createRange(); sel.moveStart( 'character', -target.value.length ); caretPos = sel.text.length; } else if ( target.selectionStart || target.selectionStart == '0' ) { caretPos = target.selectionStart; } target.value = text.substr( 0, caretPos ) + text.substr( caretPos + 1 ); if ( target.setSelectionRange ) { target.focus(); target.setSelectionRange( caretPos, caretPos ); } else if ( target.createTextRange ) { var range = target.createTextRange(); range.collapse( true ); range.moveEnd( 'character', caretPos ); range.moveStart( 'character', caretPos ); range.select(); } } </script> <body> </html>с элементами возни просто больше, с возвращением фокуса на ту позицию которую изменяем. |
А я понял, что он хочет, чтобы после перезагрузки страницы текст, который он ввёл до этой перезагрузки, остался (то есть надо отсылать его и сохранять).
|
Часовой пояс GMT +3, время: 11:30. |