Как отключить копирование вставки (браузер)

Я пробую 2 варианта:

Игнорировать щелчок правой кнопкой мышиигнорироватьCtrl + C, Ctrl + A

Это мой код:

function noMenu() {
  return false;
}
function disableCopyPaste(elm) {
  // Disable cut/copy/paste key events
  elm.onkeydown = interceptKeys
  // Disable right click events
  elm.oncontextmenu = function() {
    return false
  }
}
function interceptKeys(evt) {
  evt = evt||window.event // IE support
  var c = evt.keyCode
  var ctrlDown = evt.ctrlKey||evt.metaKey // Mac support
  // Check for Alt+Gr (http://en.wikipedia.org/wiki/AltGr_key)
  if (ctrlDown && evt.altKey) return true
  // Check for ctrl+c, v and x
  else if (ctrlDown && c==67) return false // c
  else if (ctrlDown && c==86) return false // v
  else if (ctrlDown && c==88) return false // x
  // Otherwise allow
  return true
}

И это мой HTML:

<body class="node88" oncontextmenu="return noMenu();" onkeydown="return disableCopyPaste();">

noMenu() функция работает, ноdisableCopyPaste() не работает

 Coffee31 мар. 2012 г., 20:25
Из любопытства, какой IDE или текстовый редактор вы используете?
 Wesley Murch31 мар. 2012 г., 20:25
Какова цель попытки отключить копирование / вставку? Почти наверняка есть лучшие решения, но если вам нужна помощь, это фрагмент кода, а не реальная цель, это тоже нормально. Чем больше контекста вы предоставите, тем лучше будет решение.
 Engineer31 мар. 2012 г., 20:32
@Christoph +1 для «Вы не можете предотвратить« кражу вашего контента »в любом случае.» !
 Christoph31 мар. 2012 г., 20:30
Пока у вас нет веских причин, отключение контекстного меню - очень плохая идея. То же самое для копирования + вставки. Единственное, чего вы добьетесь таким образом, это рассердит ваших посетителей. Вы не можете предотвратить «кражу вашего контента» в любом случае.
 Justin Workman31 мар. 2012 г., 20:35
Пожалуйста, не отключайте щелчок правой кнопкой мыши. Для большинства браузеров контекстное меню, вызываемое правой кнопкой мыши, содержит допустимые действия, отличные от копирования / вставки, и пользователи могут сильно расстроиться.

Ответы на вопрос(9)

$('some.selector').bind('cut copy paste', function (e) {
    e.preventDefault();
});

Firefox, Safari, IE11 и Edge. Для моего тестирования я работал с<div contenteditable>, Исходная статья:

https://www.codexworld.com/disable-mouse-right-click-cut-copy-paste-using-jquery

чтобы запретить выделение текста, поэтому никаких шансов на копирование текста не будет.

Добавьте следующие CSS и JS в тело:

CSS:

    <style>
    .unselectable
    {
        -moz-user-select:none;
        -webkit-user-select:none;
        cursor: default;
    }
    html
    {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -khtml-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        -webkit-tap-highlight-color: rgba(0,0,0,0);
    }
</style>

JS:

<script id="wpcp_css_disable_selection" type="text/javascript">
var e = document.getElementsByTagName('body')[0];
if(e)
{
    e.setAttribute('unselectable',on);
}
</script>

Почему бы не попытаться сделать текст недоступным для выбора?

.unselectable {
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all */
  -ms-user-select: none;      /* IE 10+ */
  user-select: none;          /* Likely future */       
}


/*Mobile*/

-webkit-touch-callout: default   /* displays the callout */
-webkit-touch-callout: none      /* disables the callout */

Я также очень скоро отредактирую этот ответ. Я смотрю на ту же проблему. Но я нашел некоторую информацию о том, как переписать. Я пишу функцию JS, которая, когда пользователь скопировал буфер обмена, перезаписывается. В любом случае опубликую это, когда закончите Все еще экспериментирую с этим. Вы можете прочитать статью о трюках css.

https://css-tricks.com/copy-paste-the-web/

 sjngm16 нояб. 2017 г., 12:41
В Vivaldi (использует движок Chrome) текст не выделяется, а копируется в буфер обмена после Ctrl + C, что очень странно ...

Javascript:

//disable mouse drag select start

document.
function dMDown(e) { return false; }

function dOClick() { return true; }

document.onmousedown = dMDown;

document.onclick = dOClick;

$("#document").attr("unselectable", "on"); 

//disable mouse drag select end

//disable right click - context menu

document.oncontextmenu = new Function("return false");


//disable CTRL+A/CTRL+C through key board start

//use this function


function disableSelectCopy(e) {

// current pressed key

    var pressedKey = String.fromCharCode(e.keyCode).toLowerCase();

    if (e.ctrlKey && (pressedKey == "c" || pressedKey == "x" || pressedKey == "v" || pressedKey == "a")) {

        return false;

    }

}

document.onkeydown = disableSelectCopy;


//or use this function

$(function () {

    $(document).keydown(function (objEvent) {

        if (objEvent.ctrlKey || objEvent.metaKey) {

            if (objEvent.keyCode == 65 || objEvent.keyCode == 97) {

                return false;

            }

        //}

        }

    });

});

CSS:

//disable selection through CSS for different browsers

#document, #ctl00_MasterPageBodyTag{
    user-select: none;
    -ms-user-select: none;
    -o-user-select:none;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

//where #document is the div for which select needs to be disabled and #ctl00_MasterPageBodyTag is the id of the body tag.

document.addEventListener('copy', function(e) {
    e.clipboardData.setData('text/plain', 'Please do not copy text');
    e.clipboardData.setData('text/html', '<b>Please do not copy text</b>');
    e.preventDefault();
});

https://developer.mozilla.org/en-US/docs/Web/Events/copy

го элемента, используйте приведенный ниже код. Вы можете даже заблокировать всю страницу, поместив ее в тег body.

<div oncontextmenu="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"></div>

oncontextmenu = "return false" onkeydown = "if ((arguments [0] || window.event) .ctrlKey) вернуть false"

чтобы пытаться контролировать ключевые команды пользователей (возможно, некоторые браузеры могут обнаружить это как вредоносный код), вы можете отключить выделение текста на своей странице. Хотя это не помешает копированию данных, как указано в ваших комментариях.

<!-- Disable Copy and Paste-->
<script language='JavaScript1.2'>
function disableselect(e) {
    return false
}

function reEnable() {
    return true
}

document.onselectstart = new Function (&quot;return false&quot;)

if (window.sidebar) {
    document.onmousedown = disableselect
    document.onClick = reEnable
}
</script>

Поместите это в свой

    <head> </head> 

теги и пользователь не может выбрать текст на вашей странице.

Найти наhttp://myblog-log.blogspot.com/2007/06/disable-copy-and-paste.html

 Rich31 мар. 2012 г., 20:55
Я понятия не имею, что вы только что спросили меня, и вы не предоставили ссылку.
 Rys31 мар. 2012 г., 21:10
Я просто поместил этот код в мою область <head>? все в порядке
 Rich31 мар. 2012 г., 21:11
Да, поместите сценарий выше в ваши теги головы.
 Rys31 мар. 2012 г., 20:50
Спасибо, если мне нужно отредактировать теги <body> </ body>, можете ли вы сказать мне? пример: посмотрите мой первый пост к тегам тела
 Arturo Torres Sánchez01 июн. 2015 г., 00:42
Почему вы используетеnew Function (&quot;return false&quot;) вместо простоfunction () { return false; }?

http://www.securebit.xyz/

Посетите образец страницы для доказательства, прежде чем объявить это спамом или рекламой. Попробуйте скопировать содержимое со страницы примера.

http://www.securebit.xyz/

Для получения более подробной информации и информации о покупке, пожалуйста, напишите нам по адресу [email protected]

Выгоды

Поддержка всех языков (английский, хинди, тамильский, малаялам и т. Д.) Поддержка всех CMS, включая Wordpress, Drupal, Joomla и т. Д. Содержимое не может быть скопировано из исходного кода страницы. Содержимое не может быть скопировано с помощью инструментов разработчика. Содержимое не может быть скопировано с помощью каких-либо дополнений / расширений в любом браузере. Содержимое не может быть скопировано путем отключения JavaScript.

Решение Вопроса

Вы можете попытаться заблокировать некоторые векторы (например, взломать, чтобы сделать щелчок правой кнопкой мыши более трудным, перехватCtrl+c, что затрудняет выделение текста) ... Но они будут только работать, и невозможно заблокировать все векторы (edit -> copy? view source?wget? и т.д…).

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

Если у вас есть конфиденциальный контент, который необходимо защитить, вы можете рассмотреть возможность его встраивания в BLOB-объект Flash или файл DRM-формата. Это все еще возможно для обратного инжиниринга, но это займет немного более умный атакующий.

 Pacerier10 мая 2014 г., 13:09
@ Давид, ты не против развить часть о DRM PDF?
 Christoph31 мар. 2012 г., 20:47
+1 за разъяснения и убер-про<kbd> тег ^. ^
 David Wolever10 мая 2014 г., 18:39
Я не знаю многих деталей о них, кроме того, что они существуют, но вот маркетинговый сайт Adobe, который может помочь вам начать:adobe.com/ca/products/acrobat/...
 Christoph31 мар. 2012 г., 20:44
более технические пользователи, скорее всего, будут смеяться над ним ...

Ваш ответ на вопрос