Есть ли способ перекрестного браузера для предотвращения вырезания, копирования и вставки на веб-сайте в простом Javascript?
Я нашел ответ, но это было для JQuery. Вот ссылка:
http://jquerybyexample.blogspot.com/2010/12/disable-cut-copy-and-paste-function-for.html
: Я хочу что-то в простом Javascript, который работает на хроме, последнем Firefox, Safari и IE 8 и 9.
Update
Из-за всех негативных комментариев, говорящих, что это плохая идея для интернет-сайта, я могу только сказать "согласен". Обратите внимание, что это для приложения "intranet", где вырезать, копировать и вставлять нужно, поскольку поведение браузера по умолчанию для вырезанной копии и вставки должно быть настроено для обработки встроенных тегов в области с расширенным текстом.
Ответы
Ответ 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"
Этот код будет предотвращать вырезание, копирование и вставку веб-сайта.
Рабочий фрагмент