Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2016, 13:13
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Сохранение HTML-форматирования после обработки JS
Добрый день! Есть функция:
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>-</title>
 </head>
 <body>
<script type="text/javascript">
function addLink() {
    var selection = window.getSelection(),
        copytext = String(selection),
        newdiv = document.createElement('div'),
		a ={"Ё":"YO","Й":"I","Ц":"TS","У":"U"};
		
		function translite(trans_str) {
		  return trans_str.split('').map(function(char){
			return a[char]||char;
		  }).join("");
		}

	copytext = translite(copytext);
		
    newdiv.style.position = 'absolute';
    newdiv.style.left = '-99999px';

    document.body.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);

    window.setTimeout(function () {
        document.body.removeChild(newdiv);
    }, 100);
}

document.addEventListener('copy', addLink);

</script>
 <p>
   ЁЁЁЙЙЙЦЦЦУУУ
 </p>
 </body>
</html>


После обработки она выводит данные сплошной строкой, без изначального форматирования. Например, когда копируешь в Word. Ну оно и понятно почему - в процессе данные преобразуются в строку... Но я вот думаю, а можно ли как-то сохранить HTML-форматирование в данном случае? Может реализовать всё другим способом, без перевода в строку...
Заранее спасибо!

ps Понимаю, что наверное вряд ли, ну а вдруг!

pps Ну может удастся хотя бы не полное форматирование, а перевод строки на следующую сохранить?

Последний раз редактировалось eddin, 25.06.2016 в 13:51.
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2016, 13:53
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

А? Шта?! Куда сохранить?
В коде оно и так никуда не девается.
Передать в буфер обмена? Нет, нельзя, законы те же, что и для Ворда.
Да и зачем, куда вы намерены потом его вставлять? Если на другой сайт или в редактор то можно сохранить вместе со всеми тегами в виде строки.
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2016, 14:04
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Сообщение от Botik21 Посмотреть сообщение
А? Шта?! Куда сохранить?
В коде оно и так никуда не девается.
Передать в буфер обмена? Нет, нельзя, законы те же, что и для Ворда.
Да и зачем, куда вы намерены потом его вставлять? Если на другой сайт или в редактор то можно сохранить вместе со всеми тегами в виде строки.
Думаю вы не поняли. Давайте на примере. Берем предыдущий пример, но только уберем JS и добавим в HTML еще несколько параграфов текста.

В результате когда мы откроем страницу в браузере и скопируем весь (или часть) теста в тот же Ворд, то форматирование по параграфам сохранится. Если же подключить скрипт, то оно слетит и при вставке всё будет выведено одной строкой... Вот мне и надо сохранить форматирование, так как в процессе работы будут копироваться больше объемы текста 30-50тыс символов и потом еще возвращать всё форматирование вручную очень не хочется...

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

Понятно, что если всё же идея окажется нереализуема, то придется их учить, ну а если как-то можно, то почему бы не сделать?

Последний раз редактировалось eddin, 25.06.2016 в 14:12.
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2016, 14:26
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Как я бы сделал - скопировал html как есть, а потом прошелся бы по тегам и сделал форматирование.
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2016, 14:34
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Сообщение от Царь Леонид Посмотреть сообщение
Как я бы сделал - скопировал html как есть, а потом прошелся бы по тегам и сделал форматирование.
Да, только вы забыли, что копирование не самоцель. Надо еще чтобы JS отработал.
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2016, 14:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

eddin,
строка 13 попробуйте так
a ={"Ё":"YO","Й":"I","Ц":"TS","У":"U","\n" : "<br>"};
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2016, 14:53
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Сообщение от рони Посмотреть сообщение
eddin,
строка 13 попробуйте так
a ={"Ё":"YO","Й":"I","Ц":"TS","У":"U","\n" : "<br>"};
Да нет, так не выйдет. Нечего менять-то, так как переводов строк нет, всё одной строкой идет.
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2016, 14:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

Сообщение от eddin
так не выйдет
вы пробовали?
Сообщение от eddin
так как переводов строк нет
тогда о каком форматировании речь?
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2016, 15:02
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Сообщение от рони Посмотреть сообщение
вы пробовали?
Пробовал, только я вставил последовательность "<br>":"\n", а надо было наоборот. В вашем варианте всё работает.
Рони, спасибо!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите плагин для подсветки синтаксиса html css php js кода Кирюха =) Библиотеки/Тулкиты/Фреймворки 2 31.10.2015 06:12
[общий вопрос] Есть-ли методы держать html и js отдельно друг от друга? wayzer Элементы интерфейса 7 21.02.2015 00:39
Подскажите нормальный минификатор JS, HTML и CSS Maxman Библиотеки/Тулкиты/Фреймворки 2 01.02.2015 04:12
Передать значение из html в js Mateus jQuery 3 24.12.2012 18:58
как привязать ссылку с Html страницы на вынесенный в отдельную папку js скрипт? TIIIMOXAN Общие вопросы Javascript 2 09.11.2009 19:23