Хаки и Скрипты Next Generation CMS

Скрипты добавления ссылки на источник при копировании текста

irbees2008 irbees2008 Опубликовано - 10 - апреля JS
6275 - 0
  • Автор: --------------
  • Адаптировал: irbees2008
  • Уровень сложности исполнения: это делается простым копированием и нажиманием кнопки

Вот нашел пару скриптов:
1. скрипт добавляет ссылку на источник при копировании текста со страниц сайта.

Код:
<script type="text/javascript">
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var pagelink = "<br /><br /> Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a><br />© Jemand.ru"; // В этой строке поменяйте текст на свой
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;
</script>
Разместите этот код между
Код:
<head> и </head>
.
Готово.




2.этот вариант требует библиотеку jQuery.
Код:
var source_link = '<p>Подробнее: <a href="' + location.href + '">' + location.href + '</a></p>';
jQuery(
function($)
{
if (window.getSelection) $('#content div.post').bind(
'copy',
function()
{
var selection = window.getSelection();
var range = selection.getRangeAt(0);

var magic_div = $('<div>').css({ overflow : 'hidden', width: '1px', height : '1px', position : 'absolute', top: '-10000px', left : '-10000px' });
magic_div.append(range.cloneContents(), source_link);
$('body').append(magic_div);

var cloned_range = range.cloneRange();
selection.removeAllRanges();

var new_range = document.createRange();
new_range.selectNode(magic_div.get(0));
selection.addRange(new_range);

window.setTimeout(
function()
{
selection.removeAllRanges();
selection.addRange(cloned_range);
magic_div.remove();
}, 0
);
}
);
}
);
Настраиваемые параметры:

Код:
source_link
— текст, который будет добавляться к копируемому фрагменту.
В данном примере задаётся статически, но при желании генерацию ссылки можно усложнить (например, при копировании с текста с домашней страницы можно возвращать ссылку на статью, из которой взята данная цитата).
Для этого в строке
Код:
 magic_div.append(range.cloneContents(), source_link);
вместо
Код:
source_link
нужно использовать свою функцию, возвращающую HTML для вставки в копируемый фрагмент.
Код:
'#content div.post'
— выражение, задающее один или более контейнер с текстом, при копировании которого нужно добавлять ссылку на оригинал. Идея в том, что добавлять ссылку на статью при копировании, скажем, части текста одного из комментариев к статье было бы нелогично. С помощью данного выражения можно задать требуемые защищаемые объекты.
Возможные улучшения: проверка длины копируемого текста. Например, если пользователь копирует меньше 20 слов, не добавлять ссылку. Получить выделенный текст можно через
Код:
range.cloneContents().textContent.




Работает все это как плагин для jQuery.

Как пользоваться:
1. между head подключаем скрипт
Код:
<script type="text/javascript" src="{tpl_url}/js/addtocopy.js"></script>
<script type="text/javascript">
$(function(){
$("#content").addtocopy({htmlcopytxt: '
Подробнее: <a href="'+window.location.href+'">'+window.location.href+'</a>', minlen:35, addcopyfirst: false});
});
</script>

2.Скачать файлВы не можете скачивать файлы с нашего сайта ,рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. и залить его в папку js шаблона

3.в стили добавить :
Код:
<style>
#ctrlcopy {
height:1px;
overflow:hidden;
position:absolute;
width:1px;
margin: 5px 0 0 -1px;
line-height:0;
opacity: 0;
}
</style>
ОпцияОписание
htmlcopytxt что добавлять к скопированному в буфер, принимает html
minlen минимальная длинна выделяемого текста, принимает int
addcopyfirst добавлять htmlcopytxt в начало буфера обмена или в конец, true/false

Есть и другие варианты скриптов, направленные именно на автоматическое добавление ссылки на источник при копировании текста с сайта. Защищайте свой контент с умом, но не забывайте, что всегда есть кнопка PrintScreen и OCR программы.

Можешь почитать и вот эту статейку "Хак вывод Ajax окна в любом месте сайта."

Опрос

Ваше мнение

Как вам наш дизайн сайта?
Результаты

Последние комментарии

Теги

Anything in here will be replaced on browsers that support the canvas element

Статистика

  • Caйту: 4403 дня
  • Новостей: 566
  • Комменты: 257
  • Зарегистрированно : 662
  • Онлайн всего: [7]
  • Гости: [6]
  • Поисковики: [1] Google
  • Были сегодня : [2] Google, Яндекс
  • SQL запросов: 33
  • Генерация страницы: 0.363сек
  • Потребление памяти: 5.173 Mb 
  •   Яндекс.Метрика