Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Индексы симоволов selection


Автор: Honoo 30.3.2008, 01:41
Доброе время суток!

Подскажите, пожалуйста, как можно получить индексы начала и конца выделенного текста?

Объясню ситуацию поподробнее:

1. Имеется iframe с designMode="on"
2. Пользователь выделяет фрагмент текста (необходимо как-то запомнить это выделение, т.к. далее оно пропадет)
3. Пользователь выбирает inpet text, вводит туда необходимое значение и по нажатию на кнопку этим значением должен замениться фрагмент текста, который был выделен в iFrame.

Вся проблема в том, что когда пользователь выделив текст в iFrame выбирает input text выделение текста в iframe пропадает и по нажатию на "Ok" это выделение надо возвращать и заменять.

Я пробовал запомнить индексы выделения следующим образом:
Код

    isGecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
    iframe = (isGecko) ? document.getElementById("frameTexter") : frames["frameTexter"];

    if(/msie/i.test(navigator.userAgent)){
        var sel= iframe.document.selection;
        ran= sel.createRange();
        flength = ran.text.length;
        ran.moveStart('textedit', -1);

        fend = ran.text.length;

        fstart = fend - flength;
    }


Это скрипт работает только в IE. Как получить fstart и fend в других браузерах? Пробовал в Opera поиграть с selectionStart и selectionEnd - не получилось. Так же в Opera не сработал вариант и с moveStart и moveEnd (может конечно я что-то не так делал, но из ran удалось только получить text.length, а остально так и не давало никаких результатов).

Помогите, пожалуйста, разобраться с этой задачей!
Или может у кого-нибудь есть другие идеи как запомнить выделени и потом его вернуть!

Заранее премного благодарен!!

Автор: Frozen_Coyote 7.2.2011, 12:06
А подскажите пожалуйста как этот код в ИЕ заставить работать? что то не получается никак ((

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)