2013-03-04 2 views
0

В моем предыдущем сообщении: Finding Touched elments CKEDITOR, Я искал трогательные элементы. Андерс на этом посту работал хорошо.CKEditor end/start of tag detect

Но теперь у меня другая проблема. Когда каретка установлена ​​на Фронт или конец тега/блока. Я вижу только, что родительский элемент является span. Но может быть, пользователь попытался поместить каретку прямо за тегом. пример:

this ^<span>^test</span> text 

Каретку можно установить как на «^», не видя никакой разницы.

(Одиночный выбор (startContainer == endContainer))

anwser на предыдущем посте ли обнаружить интервал, если он находится в непосредственной близости тега. Но только внутри тега он не обнаружит, что дает новый сценарий. Мне нужен способ избежать нового сценария и позволить ему обрабатывать как тронутый блок.

Я хотел бы определить, находится ли каретка внутри пролета и коснуться начала. То же самое для конца только тогда он коснулся бы конца. Функция range.checkStartOfBlock возвращает false, это не решение.

ответ

0

Я нашел исправление для Mozilla, теперь я также хочу исправить IE7 и выше.

Mozilla фикс: Проверки для начала:

A Проверить на конец:

range.endOffset === range.startContainer.getText().length //Means EndOfBlock 

==== ==== Редактировать

стройной библиотекой диапазона от rangy.googlecode.com предоставил приемлемое решение. (предложение как-то совместимое startOffset и некоторые другие функции.) Мне нужно было около 3 проверок для Internet Explorer и только 1 для Mozilla. Но похоже, что это доказательство дурака.

Все идеи приветствуются.

Смежные вопросы