Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема вставки ссылок при копировании из MSWORD (https://javascript.ru/forum/jquery/29107-problema-vstavki-ssylok-pri-kopirovanii-iz-msword.html)

frizbi 15.06.2012 09:12

Проблема вставки ссылок при копировании из MSWORD
 
Доброго времени суток всем!

Бьюсь уже 3-и сутки. Суть проблемы в следующем:
Нужен нормальный WYSIWIG редактор на jQuery. Перебрал десяток редакторов, но во всех одна и та-же проблема.

Есть документ MSWORD с оглавлением (ссылки на якоря и якоря в тексте (anchor)). Когда я копирую из него текст и вставляю его в редактор то в коде вместо простой сслыки на якорь появляется полная ссылка странички на которой находиться редактор и ссылка на якорь.

Получается вот так:
<p>
	<a href="http://мой домен/admin/admin.php?path=2&amp;add=1#_Toc324669847"><span style="font-family:Times New Roman;font-size:16px;">Статья 6<span style="color:windowtext;">. </span><span style="color:windowtext;">6</span></span></a>
</p>


А должно быть вот так:
<p>
	<a href="#_Toc324669847"><span style="font-family:Times New Roman;font-size:16px;">Статья 6<span style="color:windowtext;">. </span><span style="color:windowtext;">6</span></span></a>
</p>



Не знаю ошибка это или нет. Но у всех редакторов на jQuery такая проблема. Исключением из всех является SPAW Editor. (но он написан на PHP).

Пробовал разные версии jQuery от 1.3.3 до 1.7.2
Пробовал сам в jQuery поискать это место, но в Java я очень слабо разбираюсь, поэтому прошу помощи у Вас!

walik 15.06.2012 12:17

Это не зависит от версии JQuery.

Может просто вы не разбирали настройки редакторов.
Обычно в настройках предлагается указать какие URL адреса будут, относительные или абсолютные.
Такая настройка по сути должна решить вашу проблему.

frizbi 15.06.2012 13:27

Да, тут действительно не в версии дело. Т.к. у разных версий jQuery блок обработки ссылок полностью совпадают.

По поводу настройки редакторов уже пробовал:
Например в elRte есть функция:
absoluteURLs : false

Но она работает только на те ссылки которые обрабатывает сам редактор. Т.е. на те которые вставляются в текст нажатем иконки со ссылкой.

А те ссылки которые вставляются из MSWord-a походу обрабатываются напрямую через jQuery.
Проверял на китайском xheditor-1.1.13. Вставлял доплнительные id в строки вставки кода (при нажатии кнопки) на сайт.
Результат:
Когда нажимаешь иконку ссылки на сайте, то дополнительный id-шник появляется.
Когда копируешь ссылку с MSWord, да и просто если копируешь ссылку, Id-шник не появляется.
Отсюда у меня вытекает вывод, что при копировании ссылки она обрабатывается через jQuery, а редактор просто выводит результат.

Вот результаты проверки:
<p>
	<a id="1" href="http://ya.ru">ya.ru</a>
</p>
<p>
	<a href="http://ya.ru/">http://ya.ru/</a>
</p>
<p>
	<a href="http://ya.ru/"><span style="font-family:Calibri;font-size:16px;color:#800080;">http://ya.ru/</span></a>
</p>
<p>
	&nbsp;
</p>


1) это ссылка сделана редактором
2) это ссылка скопированна из строки броузера
3) это ссылка скопированна из MSWord

Я подозреваю, что где-то в jQuery можно отключить функцию вывода абсолютных ссылок при копировании якорей (anchor).

Или я что-то неправильно понял?

walik 15.06.2012 13:46

Опять же говорю не в JQuery дело, а в плагине.
Не один из ваших плагинов не использовал, поэтому по ним ничего сказать не могу.

Можете попробовать TinyMCE (есть плагин и для JQuery), может с ним у вас получится. Я его использовал всегда. Клиенты пока не жаловались (а они часто из word'a копируют)

frizbi 15.06.2012 14:34

TinyMCE пробывал в первую очередь. Он к сожалению вообще не ловит якоря и ссылки на них. Может быть действительно в редакторе нужно поковыряться... И потом TinyMCE оставляет кучу лишнего кода и из-за этого очень сильно увеличивает текст. А у меня вообще тексты должны быть огромные, типа Конституции РФ.

Больше всего мне понравился CKEditor, но он тоже ставит полные ссылки, а якоря вообще не ловит и не проставляет.

В том-то и дело, что копируют из ворда все нормально. Но якоря не все ловят.

Для сравнения у текста с количеством символов в 4951
СКEditor увеличивает до 6694
TinyMCE увеличивает до 12826

Я так понимаю, что jQuery выдает одинаковые данные для всех редакторов, а редактор уже интерпретирует эти данные и выводит их в форму редактирования своими средствами?

tadjik1 15.06.2012 15:41

http://redactorjs.com/
не знаю поможет или нет, но он очень красивый)

можно еще кучу текста разделить слайдерами, которые при открытии будут записываться в хеш-тэг. при открытии страницы по такой ссылке, нужный слайдер будет находиться и разворачиваться. я так решал подобную задачу. у меня уровень вложенных слайдеров доходил до 7-8 (информационная система службы техподдержки). причем еще эмулировались нажатия кнопок назад-вперед.

самый лучший редактор для работы с вордом, у системы confluence, но она платная

frizbi 15.06.2012 15:49

Этот редактор я тоже пробовал. Эффект аналогичный вышеописанному.
Делает полную ссылку на якорь.

Serg_pnz 15.06.2012 15:54

http://elrte.org/demo

frizbi 18.06.2012 08:50

C elRte такая-же беда.
Может кто знает, как в том-же elRte эту проблему убрать?

Aetae 18.06.2012 11:34

Есть подозрение, что за правильное понимание данных из буфера и их форматирование отвечает браузер.

+Вопрос: а вы уверены на 100%, что подставляется адрес текущей страницы, т.е. вы пробовали таки постить результирующий текст? Дело в том что отображается всегда полная ссылка(которая зависит естесно от текущей), даже если она задана в кратком виде.

Как костыль можно просто добавить в конец скрипта пару строк кода удаляющих упоминание адреса текущей страницы из результата.)


Часовой пояс GMT +3, время: 11:24.