Показать сообщение отдельно
  #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.
Ответить с цитированием