Показать сообщение отдельно
  #2 (permalink)  
Старый 13.05.2009, 19:16
Аспирант
Отправить личное сообщение для Pattern Посмотреть профиль Найти все сообщения от Pattern
 
Регистрация: 13.05.2009
Сообщений: 37

Прямо море ответов... Ну да ладно, ответ сам нашёл и как обычно, ларчик просто открывался. На самом деле, недоработка заключалась в том, что перед тем как получать текущую позицию курсора, нужно проверить, возможно пользователь выделил какой то объект. А отловить это можно перед определением range через getSelection().anchorNode + getSelection().anchorOffset:
var buffer=obj.contentWindow.getSelection();
//Если выделен какой то объект...
				if(buffer.anchorNode.childNodes[buffer.anchorOffset]){
//...сохраняем его в хранилище
					jsCore.storage.parentObject=buffer.anchorNode.childNodes[buffer.anchorOffset];
				}
//Сохраняем объект range
				range=buffer.getRangeAt(0);
/*** ну и далее по коду с минимальными изменениями ***/

Собственно в хранилище объект попадёт только тогда, когда курсор "попал" непосредственно на объект. Методом перемещения курсора можно получить <br/>, а <input>, <img> - методом клика по ним.
Ответить с цитированием