Javascript.RU

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

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

	alert(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>


Почему, если я удаляю строку:
pagelink = ' - без меня не работает',

а строку
copytext = selection + pagelink,

изменяю в
copytext = selection,

то второй alert перестает работать?
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2016, 12:00
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

Отладчик бы взял и посмотрел.
А не работает потому, что window.getSelection() возвращает не строку, а объект Selection и у него нет метода split() который ты пытаешься вызвать на строке 19.
А работало потому, что когда происходило соединение со строкой (selection + pagelink), объект преобразовывался в строку методом _toString().
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2016, 12:25
Аспирант
Отправить личное сообщение для eddin Посмотреть профиль Найти все сообщения от eddin
 
Регистрация: 11.10.2010
Сообщений: 60

Понятно. Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает функция скролла Павел Турченко Общие вопросы Javascript 7 23.11.2015 15:28
не работает функция Dark Surv Общие вопросы Javascript 2 17.03.2015 20:05
функция MoveTo() не корректно работает ДанилаDeep Events/DOM/Window 10 29.08.2014 15:40
Почему не работает функция в атрибуте onclick? Dimaz Events/DOM/Window 7 23.07.2014 20:52
НЕ работает функция length Golovastik Серверные языки и технологии 4 14.02.2011 17:31