解鎖網頁事件

使用Javascript解除部分網頁事件,包括鎖右鍵、鎖複製等等

2020-06-04 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

  1. // ==UserScript==
  2. // @name 解鎖網頁事件
  3. // @namespace https://github.snkms.com/
  4. // @version 0.5
  5. // @description 使用Javascript解除部分網頁事件,包括鎖右鍵、鎖複製等等
  6. // @author SN-Koarashi (5026)
  7. // @match *://*/*
  8. // @grant none
  9. // @require https://code.jquery.com/jquery-3.5.1.min.js
  10. // @supportURL https://www.facebook.com/smileopwe/
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. var $ = window.jQuery;
  18. function unBlockFunc(a) {
  19. var onData = "on" + a;
  20. if (window.addEventListener) {
  21. window.addEventListener(a, function(e) {
  22. for (var n = e.originalTarget; n; n = n.parentNode) n[onData] = null;
  23. }, true);
  24. }
  25. window[onData] = null;
  26. document[onData] = null;
  27. if (document.documentElement) document.documentElement[onData] = null;
  28. if (document.body) document.body[onData] = null;
  29. document.body.oncopy = null;
  30. }
  31. function ObjectLength( object ) {
  32. var length = 0;
  33. for( var key in object ) {
  34. if( object.hasOwnProperty(key) ) {
  35. length++;
  36. }
  37. }
  38. return length;
  39. };
  40. $(function() {
  41. var hookEvents = {
  42. 0:"contextmenu",
  43. 1:"click",
  44. 2:"mousedown",
  45. 3:"mouseup",
  46. 4:"keydown",
  47. 5:"keyup",
  48. 6:"selectstart",
  49. 7:"select",
  50. 8:"copy",
  51. 9:"cut",
  52. 10:"dragstart"
  53. };
  54. for(var i = 0;i <= ObjectLength(hookEvents);i++){
  55. unBlockFunc(hookEvents[i]);
  56. }
  57.  
  58. var css = document.createElement("style");
  59. var style = document.createTextNode("*{-ms-user-select: auto !important;-moz-user-select: auto !important;-webkit-user-select: auto !important;user-select: auto !important;}");
  60.  
  61. css.appendChild(style);
  62. document.body.appendChild(css);
  63. });
  64. })();