PageSourceSearch

https://www.sharcom.ru/g/libs/nocopy/1.0.0/nocopy.for.all.js

js sharcom.ru collected 2026-09-30 11:43:08 UTC 2,376 bytes, 69 lines download raw bytes

1document.oncontextmenu=new Function("return false")
2
3function preventSelection(element){
4  var preventSelection = false;
5
6  function addHandler(element, event, handler){
7    if (element.attachEvent) 
8      element.attachEvent('on' + event, handler);
9    else 
10      if (element.addEventListener) 
11        element.addEventListener(event, handler, false);
12  }
13  function removeSelection(){
14    if (window.getSelection) { window.getSelection().removeAllRanges(); }
15    else if (document.selection && document.selection.clear)
16      document.selection.clear();
17  }
18  function killCtrlA(event){
19    var event = event || window.event;
20    var sender = event.target || event.srcElement;
21
22    if (sender.tagName.match(/INPUT|TEXTAREA/i))
23      return;
24
25    var key = event.keyCode || event.which;
26    if (event.ctrlKey && key == 'A'.charCodeAt(0))  // 'A'.charCodeAt(0) можно заменить на 65
27    {
28      removeSelection();
29
30      if (event.preventDefault) 
31        event.preventDefault();
32      else
33        event.returnValue = false;
34    }
35  }
36
37  // не даем выделять текст мышкой
38  addHandler(element, 'mousemove', function(){
39    if(preventSelection)
40      removeSelection();
41  });
42  addHandler(element, 'mousedown', function(event){
43    var event = event || window.event;
44    var sender = event.target || event.srcElement;
45    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
46  });
47
48  // борем dblclick
49  // если вешать функцию не на событие dblclick, можно избежать
50  // временное выделение текста в некоторых браузерах
51  addHandler(element, 'mouseup', function(){
52    if (preventSelection)
53      removeSelection();
54    preventSelection = false;
55  });
56
57  // борем ctrl+A
58  // скорей всего это и не надо, к тому же есть подозрение
59  // что в случае все же такой необходимости функцию нужно 
60  // вешать один раз и на document, а не на элемент
61  addHandler(element, 'keydown', killCtrlA);
62  addHandler(element, 'keyup', killCtrlA);
63  
64  document.addEventListener('copy', function(e) {
65      e.preventDefault();
66  }, false);
67}
68
69preventSelection(document);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.