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

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

irbees2008 irbees2008 Опубликовано - 10 - апреля JS
6243 - 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йту: 4375 дней
  • Новостей: 566
  • Комменты: 257
  • Зарегистрированно : 661
  • Онлайн всего: [3]
  • Гости: [3]
  • Были сегодня : [3] Яндекс, Google, Яндекс
  • SQL запросов: 35
  • Генерация страницы: 1.431сек
  • Потребление памяти: 6.154 Mb 
  •   Яндекс.Метрика