Обратная ссылка при копировании

+38
4.97K
Тексты с сайта копируют, не только веб мастера, но и если ресурс посещаем обычные пользователи тоже. Вот решил выложить код, который автоматом ставит обратную ссылку при копировании материалов с сайта. Понятно, что если этим промышляет админ, то скорее всего удалит ссыль, но все же не все и не всегда.
А обычному пользователя, то что он так и вставит ссыль вместе с текстом.

  1. <script type="text/javascript">
  2.  
  3. function addLink() {
  4.  
  5. var body_element = document.getElementsByTagName('body')[0];
  6.  
  7. var selection;
  8.  
  9. selection = window.getSelection();
  10.  
  11. var pagelink = "
  12.  
  13. Источник: <a href='"+document.location.href+"'>"+document.location.href+"";
  14.  
  15. var copytext = selection + pagelink;
  16.  
  17. var newdiv = document.createElement('div');
  18.  
  19. newdiv.style.position='absolute';
  20.  
  21. newdiv.style.left='-99999px';
  22.  
  23. body_element.appendChild(newdiv);
  24.  
  25. newdiv.innerHTML = copytext;
  26.  
  27. selection.selectAllChildren(newdiv);
  28.  
  29. window.setTimeout(function() {
  30.  
  31. body_element.removeChild(newdiv);
  32.  
  33. },0);
  34.  
  35. }
  36.  
  37. document.oncopy = addLink;
  38.  
  39. </script>
+1
PolarOne PolarOne 10 лет назад #
Я такое делал для одного из своих сайтов которые админю. К сожалению есть неудобство.
К примеру копируешь код товара на сайте чтоб в админке найти и отредактировать и в админке вставляется код товара вместе с обратной ссылкой. Просто бесит...

Мне кажется нужно сделать чтоб этот скрипт показывался всем кроме админов и модераторов.
0
Helg Helg 10 лет назад #
Ну так этот скрипт на любителя, кому-то и пригодится. Я вот раньше сам искал как такое сделать для сайта. теперь выложил тут.
0
SEOrigin SEOrigin 10 лет назад #
Спасибо! Скрипт весьма полезный, но максимальной эффективности для оберегания своего контента можно добиться комплексными методами. Вот довольно неплохие рекомендации по защите текстов http://helperion.com/888/kak-zaschititj-tekst-saita-ot-kopirovaniya#889
Решение, как предложил ТС там тоже описано.
+1
DeeMon DeeMon 10 лет назад #
Ещё бы для незнающих и новичков написали куда код вставлять, а так статья неполноценная выходит.
0
shaman888 shaman888 10 лет назад #
я так полагаю его стоит подключить отдельным файлом в шаблон. поправьте если я не прав
0
qwest qwest 10 лет назад #
Хорошее решение. Однозначно плюс.
0
Helg Helg 10 лет назад #
У себя ставил в низу возле счетчиков и все работает))))
+1
Странник Странник 10 лет назад #
А если js скрипты выключены, то вуаля и шерше ля фам.
Я написал плагин, который ссылки вставляет в исходный текст. Думаете для чего генератор плагина мастерил?
+1
Странник Странник 10 лет назад #
Кста, админ и модеры у меня текст копируют без ссылок.
0
Helg Helg 10 лет назад #
Выложил простое решение, которое стал использовать на некоторых сайтах. Странник - ну теперь будет 2 варианта))))) может реально кому это подойдет.
Зы: плагин просто не видел ваш..
0
Странник Странник 10 лет назад #
И не увидите))) писал только для себя. Зато, как говориться, постарался.
0
Юрий Юрий 10 лет назад #
Жадина hoho
+2
Fuze Fuze 10 лет назад #
Большая просьба к авторам блогов: оформляйте текст поприличней. Если есть какой-то кусок кода, то обрамляйте его соответствующим бб-кодом, чтобы была удобная подсветка, если текст поста получается большой, разделяйте бб тегом cut, если получается очень много текста, то используйте спойлеры и т.д.
По сабжу: конечно проще и лучше было использовать jQuery, а еще лучше, как правильно заметил Странник, написать плагин.

p.s. текст подправил.
0
Димитриус Димитриус 10 лет назад #
Автору большой плюс за старания...
Было бы здорово оформить в плагин...
0
Erwin Erwin 10 лет назад #
И куда этот код вставлять нужно?
0
Димитриус Димитриус 10 лет назад #
В шаблон... temlate.php
0
PolarOne PolarOne 10 лет назад #
В хедере. Как сказал Димитриус - в temlate.php
0
Helg Helg 10 лет назад #
У меня в футере стоит и все работает.
0
PolarOne PolarOne 10 лет назад #
Можно добавить проверку на принадлежность пользователя к группе, так будет показываться кому нужно. Сделаю попозжее.
0
PolarOne PolarOne 10 лет назад #
Точнее скрипт будет работать для тех, кому нужно админу.
+2
RSN RSN 10 лет назад #
Извиняюсь за оффтоп,
Спойлер
0
RSN RSN 10 лет назад #
попробуйте там скопировать текст...
0
shaman888 shaman888 10 лет назад #
у меня на сайте ошибка выскакивает в конце первой строки "Uncaught SayntaxError: Unexpected token <"
+1
shaman888 shaman888 10 лет назад #
разобрался и доработал вариант "Pasha". Т.к. я вставляю отдельным файлом, то в моём случае надо так:
Код PHP:
  1. function addLink() {
  2. var body_element = document.getElementsByTagName('body')[0];
  3. var selection;
  4. selection = window.getSelection();
  5. var pagelink = " (источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"+")";
  6. var copytext = selection + pagelink;
  7. var newdiv = document.createElement('div');
  8. newdiv.style.position='absolute';
  9. newdiv.style.left='-99999px';
  10. body_element.appendChild(newdiv);
  11. newdiv.innerHTML = copytext;
  12. selection.selectAllChildren(newdiv);
  13. window.setTimeout(function() {
  14. body_element.removeChild(newdiv);
  15. },0);
  16. }
  17. document.oncopy = addLink;
0
shaman888 shaman888 10 лет назад #
ещё бы переход на новую строку сделать в скрипте и вообще норм будет.
0
Юрий Юрий 10 лет назад #
меняем это
Код PHP:
  1. var pagelink = " (источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
на это
Код PHP:
  1. var pagelink = "</br>Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
0
shaman888 shaman888 10 лет назад #
scratch даже смешно стало laugh
-1
Юрий Юрий 10 лет назад #
Не срабатывает скрипт, куда копать. scratch
+5
Pasha Pasha 10 лет назад #
Не срабатывает скрипт, куда копать
Как минимум в сторону синтаксиса. Приведенный выше код вообщем-то рабочий, но в представленном виде для простого copy-paste непригоден. Должно быть так:
Код PHP:
  1. <script type="text/javascript">
  2. function addLink() {
  3. var body_element = document.getElementsByTagName('body')[0];
  4. var selection;
  5. selection = window.getSelection();
  6. var pagelink = " (источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
  7. var copytext = selection + pagelink;
  8. var newdiv = document.createElement('div');
  9. newdiv.style.position='absolute';
  10. newdiv.style.left='-99999px';
  11. body_element.appendChild(newdiv);
  12. newdiv.innerHTML = copytext;
  13. selection.selectAllChildren(newdiv);
  14. window.setTimeout(function() {
  15. body_element.removeChild(newdiv);
  16. },0);
  17. }
  18. document.oncopy = addLink;
  19. </script>
-1
Юрий Юрий 10 лет назад #
Спасибо, заработала.
0
hummer7887 hummer7887 10 лет назад #
О, Вот в таком виде всё заработало замечательно! Спасибо Автору и Вам конечно! + в карму!
0
Су-27 Су-27 10 лет назад #
Спасибо за скрипт - всё работает и плюсик за старания hoho
0
lesterkey lesterkey 10 лет назад #
плюс однозначно! но вот программный код не копируется вообще..
+5
MAKS-IT MAKS-IT 10 лет назад #
Давно хотел себе на сайт подобный функционал, но все руки не доходили, огромный +!!!
А еще кто-то хотел в виде плагина, вот пожалуйста, я не жадный. ссылка на скачивание
0
Су-27 Су-27 10 лет назад #
popcorn и плюс:)
+8
MAKS-IT MAKS-IT 10 лет назад #
Обновил плагин, теперь админу, при копировании, ссылка не вставляется.Скачать плагин и не забудьте обновить в админике если устанавливали раннюю версию.
0
PolarOne PolarOne 10 лет назад #
К сожалению убираются все отступы и пробелы между абзацами. Конечно "+", но...
0
PolarOne PolarOne 10 лет назад #
Нарыл только такой способ, некоторые новостники используют, но что-то не хочет работать у меня.
0
Max Max 10 лет назад #
Давно пробовал этот плагин, но с ним возникают некоторые проблемы при копировании материала.
+1
PolarOne PolarOne 10 лет назад #
А такой вариант?
Код PHP:
  1. <script type="text/javascript">if(document.location.protocol=='http:'){ var Tynt=Tynt||[];Tynt.push('bRrzva8pOr4Bhbacwqm_6l');Tynt.i={"ap":"Источник:","aw":"10"}; (function(){var s=document.createElement('script');s.async="async";s.type="text/javascript";s.src='http://tcr.tynt.com/ti.js';var h=document.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);})(); }</script>
Пока что меня устроил, но дальше видно будет.
+1
PolarOne PolarOne 10 лет назад #
Дополню.
Как оказалось)) это сервис tynt.com
Спойлер
+3
MAKS-IT MAKS-IT 10 лет назад #
На основе плагина сделал виджет для двойки скачать тут весь функционал в js файле, легко редактируется ручками

Еще от автора

Плагин - Похожие фото под видео 10.6
Предлагаю вашему вниманию плагин, который выводит похожие фото из альбомов сайта, под видео роликом. Версия системы 10.6 и версия видео 8.3 последняя.
В продолжение микроразметки, чтоб Твиттер понимал нас лучше
Порывшись с инете наткнулся на возможность добавить свои твиты с картинкой, чтоб получить больше ретвитов и переходов на сайт.
Плагин редиректа
Заказывал я Димитриусу кусок кода. А в итоге вышел плагин. Теперь вот с его позволения, я решил выложить плагин здесь.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.