У меня есть текст, созданный с помощью CKeditor , и кажется, что он вставляет
там, где должны быть пробелы.И похоже, что он выполняет аналогичные преобразования с>, <, & и т. Д., Что хорошо, за исключением того, что когда я делаю DOMSelection, эти коды удаляются. </p>
Итак, это то, что выбрано:
before<a href=\"http://wiki.teamliquid.net/starcraft2/Hatchery\" style=\"text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; \" title=\"Hatchery\">Hatchery</a> (2)
Но это то, что на самом деле находится в DOM:
before<a href=\"http://wiki.teamliquid.net/starcraft2/Hatchery\" style=\"text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; \" title=\"Hatchery\">Hatchery</a> (2)
обратите внимание, что я вывел выделение и исходный текст, сохраненный в базе данных, используя variable.inspect, поэтому все кавычки экранированы(их не будет при отправке в браузер).
Чтобы избавить всех от необходимости искать разницу:
От первого: Hatchery</a> (2)
(Выбор)
Со второго: Hatchery</a> (2)
(Оригинал)
Эти различия находятся в самом конце выделения.
Итак ... я вижу три способа приблизиться к этому.
1) - Replace all characters commonly replaced with codes with their codes,
and hope for the best.
2) - Javascript may have some uncommon function / a library may exist that
replaces these characters for me (I think this might be the way CKeditor
does its character conversion).
3) - Figure out the way CKeditor converts and do the conversion exactly that way.
Я использую Ruby on Rails, но это не должно иметь значения для этой проблемы.
Некоторые другие вещи, которые я обнаружил, что он конвертирует:
1: It seems to only convert spaces to if the space(s) is before or after a tag:
e.g.: "With quick <a href..."
2: It changes apostrophes to the hex value
e.g.: "opponent's"
3: It changes "&" to "&"
4: It changes angle brackets to ">" and "<" appropriately.
У кого-нибудь есть мысли по этому поводу?