Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2012, 20:29
Аспирант
Отправить личное сообщение для lukingnu Посмотреть профиль Найти все сообщения от lukingnu
 
Регистрация: 13.11.2009
Сообщений: 53

Замена текста при вводе в объект с contenteditable='true'
Есть объект <span contenteditable='true' >__________</span>
Когда он получает фокус, в него можно вводить текст,он он ВСТАВЛЯЕТСЯ, есле наажать клавишу Ins текст ЗАМЕНЯЕТСЯ, можно ли так сделать,чтоб он заменялся всегда?
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2012, 08:47
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2012, 09:09
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Dim@,
ты человека не понял... ему не нужно заменять текст при нажатии клавиши Insert ему нужно что бы поле ввода вело себя так, как будто нажата клавиша Insert
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2012, 10:47
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

devote,
хм, насколько я знаю она действует в сочетании с Shift и Ctrl
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2012, 11:24
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Dim@,
открой MS Word, напиши что-нибудь, поставь каретку в центре, нажми Ins, и печатай. Теперь понял?
__________________
оляля, ололо
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2012, 12:53
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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>
с элементами возни просто больше, с возвращением фокуса на ту позицию которую изменяем.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 29.06.2012 в 12:56.
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2012, 13:31
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

А я понял, что он хочет, чтобы после перезагрузки страницы текст, который он ввёл до этой перезагрузки, остался (то есть надо отсылать его и сохранять).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55
Подбор вариантов при вводе. SergeiAzarov Общие вопросы Javascript 1 06.09.2008 15:09
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02
Ссылка на объект при использовании attachEvent Octane Events/DOM/Window 13 23.07.2008 17:37
вывод нужного текста в текстовом поле при нажатии на кнопку! fifo4ka Общие вопросы Javascript 7 06.05.2008 13:36