Во всех браузерах кроме старых опер (почти всех кроме нескольких последних) есть событие oncopy. В старых операх нельзя отловить копирование из контекстного меню. По Ctr+C можно отловить через keydown (или keypress чтоли). Далее, во всех браузерах кроме Firefox есть объект
clipboardData типа
Clipboard. Далее, во всех этих браузерах кроме Safari 5 и и Chrome < 18 можно записывать данные в этот объект. Впрочем и без clipboardData достаточно изменить выделение и в буфер попадет именно оно.
<div id="nocopy">Попробуй меня скопировать. А затем проверь что в буфере</div>
<textarea></textarea>
<script>
var target = document.getElementById('nocopy');
target.oncopy = function(event) {
var clipboardData = (event || window.event).clipboardData;
if (clipboardData) {
clipboardData.setData('Text', 'Все права защищены!');
} else {
alert('Clipboard API не поддерживается! Тут workaround\'им');
}
return false;
}
</script>
Кстати, не проще ли просто запрещать выделение больших кусков текста?
Но думаю все эти антиплагиаты ничего не стоят. В хроме например javascript на странице отключается в три клика: