Автоматическое создание ссылки при копировании с сайта
Это оказалось легко осуществимо с помощью языка javascript, в процессе обработки события oncopy, возникающего при копировании выделенного фрагмента в буфер обмена. Скрипт, автоматически добавляющий к скопированному материалу ссылку на первоисточник, выглядит так:
function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection = window.getSelection(); selection = window.getSelection(); var pagelink = "<br /><br />Original: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; var copytext = selection + pagelink; var newdiv = document.createElement('div'); body_element.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout( function() { body_element.removeChild(newdiv); }, 0); } document.oncopy = addLink;
Его достаточно записать в файл, например с именем clipboard.js и разместить у себя на сайте в директории, куда вы складываете все java-скрипты (у меня это – /js/). А затем объявить это файл между тегами <head>
и </head>
. У меня это выглядело так:
<head> ... <script src="http://www.maxblogs.ru/js/clipboard.js" type="text/javascript"></script> ... </head>
Если же у вас нет возможности размещать на своем хостинге файлы такого рода, необходимо между тегами <head>
и </head>
разместить следующее:
<head> ... <script type="text/javascript">function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection = window.getSelection(); selection = window.getSelection(); var pagelink = "<br /><br />Original: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; var copytext = selection + pagelink; var newdiv = document.createElement('div'); body_element.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout( function() { body_element.removeChild(newdiv); }, 0); } document.oncopy = addLink;</script> ... </head>
Теперь, для примера, скопирую первые три строчки радела “Обо мне” своего блога. В итоге мы получим следующее:
Здравствуйте! Если Вы зашли на этот сайт, то возможно захотите узнать что-то про его создателя ;) Меня зовут Максим. Original: http://www.maxblogs.ru/about/
Все работало. Но, в процессе этого баловства я не задумался, что этим сильно усложнил жизнь тем, кто пользуется материалами с моего сайта при конфигурировании устройств или программ. Я стою целиком и полностью за свободу в среде интернет, за беспрепятственное распространение информации, за заперт введения цензуры… При создании этого блога я не ставил себе цели заработать на нем денег. Мною двигает желание помочь тем, кто сталкивается с такими же проблемами, которые преодолел сам, желание поделиться своим, пускай и небольшим опытом.
После комментария пользователя Антон (5-й комментарий, от 8 октября) в статье про настройку postfix, я убрал объявление этого скрипта в “шапке” своего блога. Сам скрипт оставил для тех, кому он необходим.
У меня почему-то при копировании теряются переносы строк. А так как на сайте стихи, это важно. Подскажите, пожалуйста, как это исправить?