Restore Right Click for Gallery Images

The name says it all

  1. // ==UserScript==
  2. // @name Restore Right Click for Gallery Images
  3. // @name:ru Убирает блок правого клика по фото в галлерее
  4. // @namespace Violentmonkey Scripts
  5. // @match *://boosty.to/*
  6. // @grant none
  7. // @version 1.0
  8. // @author raefraem
  9. // @description The name says it all
  10. // @description:ru Очевидно из названия
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. (function () {
  15. 'use strict';
  16.  
  17. var observeDOM = (function () {
  18. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
  19.  
  20. return function (obj, callback) {
  21. if (!obj || obj.nodeType !== 1) {
  22. return;
  23. }
  24.  
  25. if (MutationObserver) {
  26. // define a new observer
  27. var mutationObserver = new MutationObserver(callback);
  28.  
  29. // have the observer observe for changes in children
  30. mutationObserver.observe(obj, { childList: true, subtree: true });
  31. return mutationObserver;
  32. } else if (window.addEventListener) {
  33. // browser support fallback
  34. obj.addEventListener('DOMNodeInserted', callback, false);
  35. obj.addEventListener('DOMNodeRemoved', callback, false);
  36. }
  37. };
  38. })();
  39.  
  40. function recreateNode(el, withChildren) {
  41. if (withChildren) {
  42. el.parentNode.replaceChild(el.cloneNode(true), el);
  43. } else {
  44. var newEl = el.cloneNode(false);
  45. while (el.hasChildNodes()) newEl.appendChild(el.firstChild);
  46. el.parentNode.replaceChild(newEl, el);
  47. }
  48. }
  49.  
  50. function getGalleryEl() {
  51. return document.getElementById('gallery');
  52. }
  53.  
  54. function handleLoad() {
  55. observeDOM(getGalleryEl(), handleChange);
  56.  
  57. function handleChange(m) {
  58. recreateNode(getGalleryEl());
  59.  
  60. setTimeout(() => {
  61. observeDOM(getGalleryEl(), handleChange);
  62. }, 200);
  63. }
  64. }
  65.  
  66. window.addEventListener('load', handleLoad, false);
  67. })();