DLE, запрет копирования текста

WhiteFalke
На сайте с 16.09.2007
Offline
184
4311

Хочу хоть на минимальном уровне от воровства как то защититься, как можно запретить копировать текст в DLE?

Наталкивался на несколько сайтов, где при нажатии правкой кнопкой или же при Ctrl+C вылетало сообщение о том, что копировать запрещено.

D
На сайте с 30.09.2008
Offline
107
#1
WhiteFalke:
Хочу хоть на минимальном уровне от воровства как то защититься, как можно запретить копировать текст в DLE?
Наталкивался на несколько сайтов, где при нажатии правкой кнопкой или же при Ctrl+C вылетало сообщение о том, что копировать запрещено.

Есть вот такой скрипт, но уж очень большой:

<SCRIPT LANGUAGE="JavaScript">


function preventSelection(element){
var preventSelection = false;

function addHandler(element, event, handler){
if (element.attachEvent)
element.attachEvent('on' + event, handler);
else
if (element.addEventListener)
element.addEventListener(event, handler, false);
}
function removeSelection(){
if (window.getSelection) { window.getSelection().removeAllRanges(); }
else if (document.selection && document.selection.clear)
document.selection.clear();
}
function killCtrlA(event){
var event = event || window.event;
var sender = event.target || event.srcElement;

if (sender.tagName.match(/INPUT|TEXTAREA/i))
return;

var key = event.keyCode || event.which;
if (event.ctrlKey && key == 'A'.charCodeAt(0)) // 'A'.charCodeAt(0) можно заменить на 65
{
removeSelection();

if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
}
}

// не даем выделять текст мышкой
addHandler(element, 'mousemove', function(){
if(preventSelection)
removeSelection();
});
addHandler(element, 'mousedown', function(event){
var event = event || window.event;
var sender = event.target || event.srcElement;
preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
});

// борем dblclick
// если вешать функцию не на событие dblclick, можно избежать
// временное выделение текста в некоторых браузерах
addHandler(element, 'mouseup', function(){
if (preventSelection)
removeSelection();
preventSelection = false;
});

// борем ctrl+A
// скорей всего это и не надо, к тому же есть подозрение
// что в случае все же такой необходимости функцию нужно
// вешать один раз и на document, а не на элемент
addHandler(element, 'keydown', killCtrlA);
addHandler(element, 'keyup', killCtrlA);
}
preventSelection(document);
document.ondragstart = test;
//запрет на перетаскивание
document.onselectstart = test;
//запрет на выделение элементов страницы
document.oncontextmenu = test;
//запрет на выведение контекстного меню
function test() {
return false
}
</SCRIPT>
4NT1P0V
На сайте с 31.01.2009
Offline
66
#2

Если Вам необходимо чтоб нельзя было копировать, лучше воспользоваться данной системой, гости не смогут копировать текст вообще, суть идет на ограничение на определенные группы пользователей, он не станет выделяемым.

Откройте main.tpl и после тега <body> вставьте

[group=4,5]<div id="noselect">[/group]

Далее в самом конце перед тегом </body> вставьте

[group=4,5]</div>
<script type="text/javascript">
function disableSelection(target){
if (typeof target.onselectstart!="undefined")
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined")
target.style.MozUserSelect="none"
else
target.onmousedown=function(){return false}
target.style.cursor = "default"
}

if (document.getElementById("noselect")) {
disableSelection(document.getElementById("noselect"));
}
</script>[/group]

/* тут задается ограничение на группы [group=4,5], посмотреть их можно Админка -> Настройка групп пользователей...

Если выхотите запретить выделение только новостей, то откройте два файла:

fullstory.tpl и shortstory.tpl

И вставьте данный текст в начале и в конце этих файлов.

Собственно и все, и намного удобнее чем отключение правой кнопки, которая в нашем случае работает + администраторы и прочие группы пользователей могут выделять текст, а не зарегистрированные нет!

=)
WhiteFalke
На сайте с 16.09.2007
Offline
184
#3
4NT1P0V:
Если Вам необходимо чтоб нельзя было копировать, лучше воспользоваться данной системой, гости не смогут копировать текст вообще, суть идет на ограничение на определенные группы пользователей, он не станет выделяемым.
Откройте main.tpl и после тега <body> вставьте
[group=4,5]<div id="noselect">[/group]


Далее в самом конце перед тегом </body> вставьте

[group=4,5]</div>

<script type="text/javascript">
function disableSelection(target){
if (typeof target.onselectstart!="undefined")
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined")
target.style.MozUserSelect="none"
else
target.onmousedown=function(){return false}
target.style.cursor = "default"
}

if (document.getElementById("noselect")) {
disableSelection(document.getElementById("noselect"));
}
</script>[/group]


/* тут задается ограничение на группы [group=4,5], посмотреть их можно Админка -> Настройка групп пользователей...

Если выхотите запретить выделение только новостей, то откройте два файла:
fullstory.tpl и shortstory.tpl
И вставьте данный текст в начале и в конце этих файлов.

Собственно и все, и намного удобнее чем отключение правой кнопки, которая в нашем случае работает + администраторы и прочие группы пользователей могут выделять текст, а не зарегистрированные нет!

Спасибо! Это ни как на индексацию не повлияет?

4NT1P0V
На сайте с 31.01.2009
Offline
66
#4

А вот про индексацию не подумал, простите, тогда такой вариант:

Тут правая кнопка не работает вообще, alert'а нет никакого, текст выделить можно и соответственно дальше ctrl + c...

<script type="text/javascript">

// <!--
var message = "";
function clickIE()
{
if (document.all) (message);
return false;
}

function clickNS(e)
{
if (document.layers || (document.getElementById && !document.all))
{
if (e.which == 2)
{
(message);
return false;
}
}
}

if (document.layers)
{
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = clickNS;
}
else
{
document.onmouseup = clickNS;
document.oncontextmenu = clickIE;
}

document.oncontextmenu = new Function("return false");
// -->
</script>
moonters
На сайте с 09.10.2008
Offline
139
#5

Если отключить JavaScript в браузере, то вся эта защита накроется.

Мобильные прокси беру только тут - https://goo.su/G5nhch
KN
На сайте с 20.01.2009
Offline
41
#6

да мне кажется это все равно не поможет, это защита от "школьников"! Имхо

Размещение рекламы, тематика юмор (/ru/forum/475910) 100 уников= 30 рублей (http://www.clickunder.ru/?partner=20563) Teasernet от 100 рублей за 20 кликов по тизерам! (http://teasernet.ru/?owner_id=1658)
ЛМ
На сайте с 24.10.2009
Offline
1
#7

Тоже хотела поставить запрет, но мне говорили что скопировать можно и другими способами.

Если я тебе не нравлюсь, значит ты не имеешь вкуса.
4NT1P0V
На сайте с 31.01.2009
Offline
66
#8

Как сказал ТС, на минимальном уровне, это и есть минимальный уровень защиты от воровства. Как раз для пользователей-новичков.

ixRock
На сайте с 14.11.2006
Offline
46
#9
moonters:
Если отключить JavaScript в браузере, то вся эта защита накроется.

да это фигня по сравнению с тем, что я например сижу через оперу и тут контекстное меню всегда программное и JS его не изменить..

+ всегда можно сохранить через меню в Файл->Сохранить как

+ можно нажать Ctrl+U и посмотреть сурс страницы.. ))

имхо всё это защита от очень глупых юзверей)

ТС вам решать стоит ли игра свеч)

Работаю [S]за еду и секас[/S] с XHTML, CSS, XSLT, JS, PHP. Если что, вот тут (http://www.mintdesign.ru/) некоторые мои работы. Контакты: ася 344-ноль86-276, мыло ixrock@gmail.com

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий