Не работает функция
Добрый день. Есть такой код:
<!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 перестает работать? Заранее спасибо! |
Отладчик бы взял и посмотрел.
А не работает потому, что window.getSelection() возвращает не строку, а объект Selection и у него нет метода split() который ты пытаешься вызвать на строке 19. А работало потому, что когда происходило соединение со строкой (selection + pagelink), объект преобразовывался в строку методом _toString(). |
Понятно. Спасибо!
|
Часовой пояс GMT +3, время: 17:47. |