Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2010, 11:58
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Позиционирование курсора в DesignMode
Здраствуйте. Учень нужна помощь. При вставке в документ с заданым designmode картинки курсор оказывается слева от нее, что разумеется не кошерно. Вопрос, это я как то не так вставляю картинку или это требует дополнительных манипуляций?

if (browse.ie) {
  var imgId = uniqueId('smile');
  var el =
    '<img id="' + imgId + '" src="' + smile.img + '" alt="' + smile.txts[0] +
    '" contentEditable="false" onResizeStart="return false">';
  maDocument.selection.createRange().pasteHTML(el);
} else {
  var el = maDocument.createElement('img');
  el.src = smile.img;
  el.alt = smile.txts[0];
  SelectionRange = maWindow.getSelection().getRangeAt(0);
  SelectionRange.deleteContents();
  SelectionRange.insertNode(el);
}

Последний раз редактировалось da_ff, 13.01.2010 в 12:00.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2010, 12:15
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Так.. Для gecko подобных браузеров проблема решается добавлением нескольких строчек

el = maDocument.createElement('img');
el.src = smile.img;
el.alt = smile.txts[0];
SelectionRange = maWindow.getSelection().getRangeAt(0);
SelectionRange.deleteContents();
SelectionRange.insertNode(el);
/* ниже строчки что добавили */
SelectionRange.selectNode(el);
SelectionRange.collapse(false);

Последний раз редактировалось da_ff, 13.01.2010 в 12:18.
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2010, 12:30
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Ага. все равно не очень. Элементы, которые добавили через insertNode подсвечиваются серым в дальнейшем.
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2010, 12:57
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

как оказалось подсвечивание серым совсем не от этого. оно и раньше было. теперь осталось от него избавиться, но не понятно откуда оно взялось
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2010, 13:02
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

все это не работает ни в хроме ни в опере
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2010, 13:22
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Для того, чтобы серое подсвечивание снималось надо добавлятять после вставки объекта collapse, тоесть вставка должна выглядеть так

el = maDocument.createElement('img');
el.src = smile.img;
el.alt = smile.txts[0];
SelectionRange = maWindow.getSelection().getRangeAt(0);
SelectionRange.deleteContents();
SelectionRange.insertNode(el);
/* ниже строчки что добавили */
SelectionRange.collapse(false);
SelectionRange.selectNode(el);
SelectionRange.collapse(false);


но опять же это не приводит к нужному результату не в хроме не в опере. видимо надо делать как то координально иначе
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2010, 16:58
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Пока остановился на таком варианте.

SelectionRange.insertNode(el);
SelectionRange.selectNode(el);
maWindow.getSelection().addRange(SelectionRange);
maWindow.getSelection().collapseToEnd();


есть некоторые косяки в хроме, но по крайней мере работает хоть как то, в опере вообще не работает.

По прежнему надеюсь что кто-то поможет?!
Ответить с цитированием
  #8 (permalink)  
Старый 14.01.2010, 10:39
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Какой у Вас занимательный блог

http://fastcoder.org/articles/?aid=609
Ответить с цитированием
  #9 (permalink)  
Старый 14.01.2010, 12:23
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Сообщение от Gozar Посмотреть сообщение
Какой у Вас занимательный блог

http://fastcoder.org/articles/?aid=609
и это тоже уже читал. читал и рыдал. от того что в разных браузерах разные методы ведут себя порой по-разному, уж извините за тавтологию)

к примеру, солнышко наше, firefox, раздвигает границы существующего range'а автоматически при изменении собственно границ, однако, надежда наша на светлое будущее, chrome, делает это только после select.addRange. но это пол беды. наша модница, opera, вообще на это болт ложит (уж не знаю почему). "Мама! Она меня игнорирует!!!" методы setStartBefore, setStartAfter, setEndBefore, setEndAfter опять же ведут себя изредка непредсказуемо, что страшно нервирует.

Последний раз редактировалось da_ff, 14.01.2010 в 12:33.
Ответить с цитированием
  #10 (permalink)  
Старый 14.01.2010, 12:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от da_ff
к примеру, солнышко наше, firefox, раздвигает границы существующего range'а автоматически при изменении собственно границ, однако, надежда наша на светлое будущее, chrome, делает это только после select.addRange. но это пол беды. наша модница, opera, вообще на это болт ложит (уж не знаю почему).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменения рисунка при наведении курсора Kenan Bek Events/DOM/Window 24 19.12.2010 20:48
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59
Появление текста при наведении курсора на ссылку Александра Элементы интерфейса 1 11.05.2009 00:22
установка позиции курсора или выделения в iframe mister_maxim Events/DOM/Window 5 18.04.2009 10:43
координаты курсора клавиатуры demi Events/DOM/Window 1 06.03.2009 04:38