Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> позиция выделения в div 
:(
    Опции темы
ZC1989
Дата 24.9.2012, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: нет
Всего: 1



Всем привет)

нужно получать позиции выделения в диве или просто позицию курсора, куда пользователь ее поставил

Код

<div id="_form" class="form_div" contenteditable="true"></div>

<input type='button' onclick=''>


а вот кусок кода который должен возвращать позицию курсора
Код

/*  */
    this.get_cursor = function () {
        
        var _sel = [ 0, 0 ];
        
        if( !div_form )
            return _sel;

        if( window.getSelection ) {
            
            //removeEmptyTextElements( div_form );

            var sel = window.getSelection();
            var rng = sel.getRangeAt( 0 ); 
            
            _sel[1] = (rng.toString()).length;
            rng = rng.cloneRange();

            var startCont = rng.startContainer;
            var startOffs = rng.startOffset;
            
            rng.setStart( div_form, 0 );
            rng.setEnd( startCont, startOffs );
            
            _sel[0] = rng.toString().length;
            _sel[1] = _sel[1] + _sel[0];
            
        } else {
            
            //var rng = div_form.selection/*.createRange()*/;
            //SelectStart = (-rng.move("character", -1000000000000)).toString();
            //SelectEnd = SelectStart + (rng.text).length;
        }

        return _sel;
    }


задача такая, нужно по клику кнопки вставлять на место курсора смайлик.. и все бы ничего, но эта функция работает только когда есть выделенный текст, тогда я получаю начальную и конечную позиции, а если курсор был просто поставлен в содержимого, то возвращается всегда последняя позиция строки.

этот же код работает если я делаю не через div а через iframe и там он работает прекрасно, либо он просто возвращает одинаковые координаты либо позиции выделения, а вот с димов чтото не то...

я так думаю, не связано ли это как раз с тем что iframe всегда держит все в своем document ?


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Aliance
Дата 25.9.2012, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.