Отслеживание изменений, внесенных в поле на веб-странице с помощью jscript? - PullRequest
1 голос
/ 11 ноября 2010

У нас был клиент, добавивший новое «требование» в проект, который мы собираемся запустить, и он нас немного отбросил. С точки зрения конечных пользователей это просто, но как разработчик я понятия не имею, как это реализовать!

Наш пользователь хотел бы, чтобы текстовое поле веб-формы (в идеале, текстовый редактор, такой как CKEditor ) отслеживало изменения, вносимые пользователем в содержимое. Обратите внимание, что это не для отслеживания внесения изменений, а для их выделения. По сути, они используют функцию отслеживания изменений в Microsoft Word!

Идея заключается в том, что запрос будет передаваться между пользователями, если один пользователь изменит текстовое поле, содержащее большой объем текста, следующий пользователь сможет легко определить, что изменилось.

Мне бы очень хотелось услышать, делал ли кто-нибудь что-нибудь подобное или кто-то думал о том, возможно ли это сделать?

Ответы [ 3 ]

0 голосов
/ 11 ноября 2010

Хммм ... ну, вы можете сохранить содержимое поля в переменной, а затем использовать алгоритм сравнения (конечно, он должен быть там), чтобы проверить изменения onChange и отформатировать соответствующим образом, но только отобразит разницукогда пользователь нажимает за пределами поля.Это будет достаточно хорошо?Если нет, вы можете сравнить событие onkeypress с событием onkeyup и применить форматирование к разнице?

0 голосов
/ 11 ноября 2010

Ну, для этого вам нужно какое-то решение для управления контентом. Он должен иметь управление версиями, чтобы вы могли хранить разные версии контента. Если ваш контент представляет собой просто текст, это не составит труда сделать различий. Если он структурирован каким-либо образом (HTML или другой формат, отличный от текстового), может быть довольно сложно определить изменения. Я думаю, что в последнем случае вы могли бы пометить новый текст невидимыми тегами, например, <edition version="1.0"> </edition>, которые выделит редактор. Вы также можете сделать тег для удаленного текста. И вы могли бы просто не выделять текст и не показывать удаления в качестве опции.

0 голосов
/ 11 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...