Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2010, 01:13
Аватар для Скриптор
Аспирант
Отправить личное сообщение для Скриптор Посмотреть профиль Найти все сообщения от Скриптор
 
Регистрация: 05.02.2010
Сообщений: 35

выделение слова двойным щелчком
Как показали опыты, выделение слова двойным щелчком, каким-то образом задаёт необязательно эквивалентный результат тому, когда вы задаете вначале задаете первую позицию выделения (мышкой - 1 щелчок или же курсор здесь уже стоял), а дальше выделяете мышкой ли или с помощью стрелок.

Совпадают результаты только в таких традиционно редактируемых областях как "input" и "textarea". Если скажем подобное попробовать получить на примере "<div contentEditable='true'>", последует облом: выделенной областью будет "точка входа" по двойному щелчку, а вовсе не его результату, то есть выделенному блоку (обычно слову). При виделении для копирования, впрочем это незаметно (похоже, что не сказывается, а может просто не замечали).



В чем дело? Можно ли это как-то обойти?
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2010, 12:37
Аватар для Скриптор
Аспирант
Отправить личное сообщение для Скриптор Посмотреть профиль Найти все сообщения от Скриптор
 
Регистрация: 05.02.2010
Сообщений: 35

Если понятней будет с кодом, то здесь подробнейшие объяснения.
.
Задача простая:
добится такого же поведения для "<div contentEditable='true'>" (я о двойном щелчке мыши по слову).
Решения достаточно для IE.

Все же никак не пойму, как же это так мышка выделяет, что результаты разные получаются?

Последний раз редактировалось Скриптор, 31.03.2010 в 12:41.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2010, 23:01
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Это defaultAction для браузера. Вы уверены, что хотите переопределить его? Учитывая, что пользователь привыкает к своему юзерагенту и любое отклонение от привычного поведения, пусть и кажущееся удобным, его приведет к повторному преодолению "когнитивного сопротивления"?
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2010, 23:30
Аватар для Скриптор
Аспирант
Отправить личное сообщение для Скриптор Посмотреть профиль Найти все сообщения от Скриптор
 
Регистрация: 05.02.2010
Сообщений: 35

Такой проблемы для меня, к счастью, не стоит.

Меня интересует именно возможность повесить на конкретный div какой-нибудь обработчик, чтобы он воспроизводил такое же поведение, какое происходит в input и textarea по двойному щелчку.

Такое ощущение, что это что-то простое (вроде бы как получить координаты выделения), но я пока хожу вокруг и около.
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2010, 00:47
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Что ж…

defaultAction выполняется после всех обработчиков javascript, и отменить его можно, вызвав event.preventDefault (W3C) или event.returnValue = false (MS).

Событие click наступает после последовательных mousedown и mouseup над одним и тем же местом на экране (над одним и тем же элементом в HTML5). Событие dblclick — два последовательных клика. event.detail возвращает количество щелчков, т.е, полноценная замена несуществующим tripleclick, quadripleclick и т.п.

Дерзайте!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать выделение в Опере у div, получившего фокус ? spa_2002 Opera, Safari и др. 5 03.09.2009 10:42
Выделение одиночных тэгов Pattern Events/DOM/Window 7 26.05.2009 23:29