Замена текста при вводе в объект с 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, время: 18:59. |