Мы написали плагин для текстового редактора Xinha для обработки сносок. Вы можете взглянуть на:
http://www.nicholasbs.com/xinha/examples/Newbie.html
Чтобы решить некоторые проблемы с тем, как Webkit и IE обрабатывают ссылки в конце строк (нет способа использовать курсор, чтобы выйти из ссылки в той же строке), мы вставляем пустой элемент и перемещаем выделение. к тому, чем рухнуть вправо. Это прекрасно работает в Webkit и Gecko, но по какой-то причине moveToElementText выдает исключение Invalid Argument. Неважно, какой элемент мы передаем ему, функция, кажется, полностью нарушена. Однако в других путях кода эта функция работает.
Чтобы воспроизвести ошибку, используя ссылку выше, нажмите в основной области ввода текста, введите что-нибудь, затем нажмите на желтый значок страницы с зеленым знаком плюс, введите что-нибудь в диалоговом окне лайтбокса и нажмите Вставить. Ниже приведен пример кода, вызывающего проблему:
if (Xinha.is_ie)
{
var mysel = editor.getSelection();
var myrange = doc.body.createTextRange();
myrange.moveToElementText(newel);
} else
{
editor.selectNodeContents(newel, false);
}
Данный код находится в SVN по адресу:
https://svn.openplans.org/svn/xinha_dev/InsertNote
Этот плагин построен на ветке Xinha, доступной по svn по адресу:
http://svn.xinha.webfactional.com/branches/new-dialogs