2013-03-18 3 views
0

Я ищу решение по javascript для следующей проблемы. Я использую CKEditor на своем веб-сайте, но я считаю, что это неважно. Потому что я считаю, что это родная функциональность, а не функциональность CKEditor.Отключить перемещение текста с помощью javascript

Я хотел бы отключить перемещение выделенного текста в редакторе. Пользователь должен иметь возможность перемещать выделенный текст в редакторе, это может быть запрещено.

Единственное, что я хотел бы отключить, это перемещение выделения. Или лучше падение выбора.

+0

Я искал в Интернете, Google, StackOverflow. Но я действительно не знаю, с чего начать. Какое событие обрабатывает это? Начать? – spons

+0

вы можете объяснить, почему вы этого хотите? – 23tux

+0

Я выполняю функциональные изменения трека. и я не могу найти способ отслеживать эти изменения. – spons

ответ

1

Используйте событие ondrop.

myEditor.ondrop = function preventDrop (e) { 
    e.preventDefault(); 
}; 

jsfiddle.net/PHgdZ

Но, если отслеживание изменений является то, что вы на самом деле после того, нет никакой необходимости, чтобы предотвратить перетаскивание. Просто используйте событие ondrop, чтобы отслеживать изменение. А для более новых браузеров просто используйте oninput. Это обнаружит изменения независимо от метода ввода.

jsfiddle.net/PHgdZ/1

+0

Событие oninput не поддерживается в -IE9, и клиенту нравится поддерживать его до ie7. Но кроме того, oninput похож на onchange в одном из комментариев выше полного решения, которое мне не нужно. Спасибо за эту идею. Событие ondrop именно то, что я ищу. Персоналий я бы расширил ваше решение с помощью редактора.ondragstart = function (e) {e.preventDefault(); }; Не дать вашему клиенту идею о возможности. http://jsfiddle.net/PHgdZ/2/ – spons

+0

И будет отслеживаться не только вход, но и удаление. Для этого полезно использовать oninput или событие onchange, как в комментарии MrGrigg. Потому что теперь мне нужно найти из onDragStart, что выбрано, и пометить его как удаленный. После этого мне придется ждать вставки. и если они не были удалены в текстовой области. последний помеченный удаленный текст будет отменен. Но на данный момент я держусь за предотвращение сохранения. Новая функция в следующей версии;) – spons

+1

@spons - Да, 'ondragstart' - это логическое расширение, которое, безусловно, может повысить удобство использования. Вместо того, чтобы полностью отменять событие, лучше всего просто установить 'cursor: no-drop' для' editor' во время 'ondragover' и сбросить курсор во время' ondragleave'. Таким образом, пользователь предоставляет визуальный сигнал, который недоступен, но не повреждает браузер. – gilly3

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