Изменение содержимого при копировании
Решил сделать чтобы при копировании материалов с сайта в конец скопированного добавлялась строчка указывающая откуда был взят текст. Нашел приличное число тем на эту тему, но сделать рабочим под Operу так и не получилось.
function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection; selection = window.getSelection(); var pagelink = "<br /><br /> Источник: xxx Все права защищены © 2011"; var copytext = selection + pagelink; var newdiv = document.createElement('div'); newdiv.style.position='absolute'; newdiv.style.left='-99999px'; body_element.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout(function() { body_element.removeChild(newdiv); },0); } document.oncopy = addLink; находил вариант с условием: if (window.getSelection) { txt = window.getSelection().toString(); } else if (document.getSelection) { txt = document.getSelection(); } else if (document.selection) { txt = document.selection.createRange().text; } который по словам автора работает на всех браузерах, однако у меня он не работал. Opera 11.10 |
Xss в коде автора
В коде выше есть уязвимость, при копировании экранированного текста аля
<img src onerror="alert()">исполнится код, пример |
Часовой пояс GMT +3, время: 10:55. |