Не работает функция
Добрый день. Есть такой код:
<!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, время: 15:10. |