Подтвердить что ты не робот

Есть ли способ перекрестного браузера для предотвращения вырезания, копирования и вставки на веб-сайте в простом Javascript?

Я нашел ответ, но это было для JQuery. Вот ссылка:

http://jquerybyexample.blogspot.com/2010/12/disable-cut-copy-and-paste-function-for.html

: Я хочу что-то в простом Javascript, который работает на хроме, последнем Firefox, Safari и IE 8 и 9.

Update

Из-за всех негативных комментариев, говорящих, что это плохая идея для интернет-сайта, я могу только сказать "согласен". Обратите внимание, что это для приложения "intranet", где вырезать, копировать и вставлять нужно, поскольку поведение браузера по умолчанию для вырезанной копии и вставки должно быть настроено для обработки встроенных тегов в области с расширенным текстом.

4b9b3361

Ответ 1

Конечно, не так уж и нужно делать такие вещи, но это не был вопрос @Zubairs, поэтому я думаю, что голосование вниз здесь неверно, так как он ясно дал понять.

Теперь на вопрос: если jQuery может это сделать, собственный javascript тоже может это сделать.

вы должны запретить вырезать, копировать и вставлять события:

document.body.oncopy = function() { return false; }
document.body.oncut = function() { return false; }
document.body.onpaste = function() { return false; }

это предотвращает контекстное меню правой кнопки мыши, это не нужно, если вы используете 3 других обработчика событий, но только чтобы сообщить вам; -)

document.body.oncontextmenu = function() { return false; }

ВАЖНО: тело должно быть загружено (конечно), document.body, потому что IE нуждается в нем (document.oncopy будет работать только в chrome/firefox/safari)

Ответ 2

Изменить: добавление этого тега тела, похоже, работает на всех моих тестовых браузерах, включая Opera, Chrome, Seamonkey (поэтому я предполагаю Firefox) и IE9

<body oncopy='return false' oncut='return false' onpaste='return false'>

вы можете поместить их в другие теги, если вы хотите разрешить некоторые функции в некоторых местах, а не в других

Ответ 3

Вы можете поймать нажатие [Ctrl]+[C]:

addEventListener("keydown", function(e){
    evt = (e) ? e : window.event; // Some cross-browser compatibility.
    if(evt.ctrlKey && evt.which == 67){ // [x] == 88; [c] == 67; [v] == 86;
        console.log("Ctrl+C pressed!");
        evt.preventDefault(); // Cancel the copy-ing function for the client.
        // Manual Copy / Paste / Cut code here.
    }
});​

Рабочий фрагмент

Ответ 4

хороший способ

var D=document.getElementById('b4');

if(D.addEventListener){
D.addEventListener('paste',function(e){false;e.preventDefault();},false);}
else{
D.attachEvent('onpaste',function(){return false;});}

предупреждение: код должен находиться под html target/s, как раз перед тегом тесного тега, например

Ответ 5

oncopy="return false" oncut="return false" onpaste="return false"

Этот код будет предотвращать вырезание, копирование и вставку веб-сайта.

Рабочий фрагмент