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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Курсор в designMode 
:(
    Опции темы
BreatheInMyVoid
Дата 5.7.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.7.2010

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



Есть iframe в режиме desingMide = 'on'. Есть кнопка, при нажатии на нее в iframe вставляется текст. После вставки курсор всегда становится в начало iframe. как можно сделать так чтобы он оставался в конце вставленного текста? Как его вообще можно позиционировать курсор в этом режиме. Набросал небольшой тестовый пример для наглядности.  Спасибо.

Код

<html>
    <head>
        <title>Expl</title>    
        <script type = "text/javascript">
            function initDesign() {
                var iFrame = document.getElementById("content");
                var iDoc = iFrame.contentDocument;

                iDoc.designMode = 'on';
            }
            function pasteText() {
                var iFrame = document.getElementById("content");
                var iDoc = iFrame.contentDocument;
                iDoc.body.innerHTML += "Checking";
                iFrame.focus();
            }
        </script>
    </head>
    <body onload = "initDesign()">
        <button id = "button" onclick = "pasteText()">Paste Text</button>
        <br />
        <iframe id = "content">
        </iframe>
    </body>
</html>


Это сообщение отредактировал(а) BreatheInMyVoid - 5.7.2010, 13:38
PM MAIL   Вверх
12345c
Дата 7.7.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Примерно так (надо выбирать последнюю ноду в body.childNodes); многословно, да :
Код

            function pasteText() {
                var iFrame = document.getElementById("content");
                var iDoc = iFrame.contentDocument;
                iDoc.body.innerHTML = "Checking";
                iFrame.focus();
                var rng = iDoc.createRange();
                rng.setStartAfter(iDoc.body.childNodes[0]);
                rng.setEndAfter(iDoc.body.childNodes[0]);
                sel=iFrame.contentWindow.getSelection();
                sel.removeAllRanges();
                sel.addRange( rng );
            }


Добавлено через 2 минуты и 47 секунд
[FF only, ведь для него был вопрос?]


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
BreatheInMyVoid
Дата 9.7.2010, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.7.2010

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



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


 




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


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

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