Reject serviceWorker Auto

10/4/2023, 5:07:06 PM

  1. // ==UserScript==
  2. // @name Reject serviceWorker Auto
  3. // @namespace rejectserviceWorkerAuto
  4. // @match *://*/*
  5. // @run-at document-start
  6. // @grant GM_getValue
  7. // @grant GM_setValue
  8. // @grant GM_registerMenuCommand
  9. // @version 1.3
  10. // @author -
  11. // @description 10/4/2023, 5:07:06 PM
  12. // ==/UserScript==
  13.  
  14. var defaultvalue = 'none';
  15. var name = 'rejectserviceWorkerAuto';
  16. var prefix = "autoinject" + name;
  17. var value = GM_getValue("value" + name + document.domain, defaultvalue);
  18. console.log(value);
  19. var injectedStatus = false;
  20. var hostarray = [];
  21.  
  22. function inject() {
  23. //if (window.self !== window.top) return; // Not in frames
  24. if (injectedStatus !== false) return; // Not if already injected
  25. if (navigator.serviceWorker) {
  26. navigator.serviceWorker.register = () => new Promise((res, rej) => rej("This method is not allowed!"));
  27. }
  28. injectedStatus = true;
  29. }
  30.  
  31. function addHost() {
  32. hostarray.push(location.hostname);
  33. GM_setValue(prefix, JSON.stringify(hostarray));
  34. if (injectedStatus == false) inject;
  35. }
  36.  
  37. function set() {
  38. var val = window.prompt("Enter " + name + document.domain + " value", defaultvalue);
  39. val = parseInt(val);
  40. if (val == undefined) {
  41. return false;
  42. }
  43. GM_setValue("value" + name + document.domain, val);
  44. }
  45.  
  46. function plus() {
  47. var value = GM_getValue("value" + name + document.domain, defaultvalue);
  48. GM_setValue("value" + name + document.domain, value + 1);
  49. }
  50.  
  51. function minus() {
  52. var value = GM_getValue("value" + name + document.domain, defaultvalue);
  53. GM_setValue("value" + name + document.domain, value - 1);
  54. }
  55.  
  56. function removeHost() {
  57. var index = hostarray.indexOf(location.hostname);
  58. if (index > -1) {
  59. hostarray.splice(index, 1);
  60. GM_setValue(prefix, JSON.stringify(hostarray));
  61. }
  62. }
  63. // This should work in Violentmonkey and Tampermonkey, but unfortunately not Greasemonkey.
  64. try {
  65. hostarray = JSON.parse(GM_getValue(prefix, "[]"));
  66. //console.log(hostarray);
  67. if (typeof (value) == 'number') {
  68. GM_registerMenuCommand("+", plus);
  69. GM_registerMenuCommand("-", minus);
  70. }
  71. //GM_registerMenuCommand("Set " + name, set);
  72. if (hostarray.includes(location.hostname)) {
  73. GM_registerMenuCommand("Inject " + name, inject);
  74. GM_registerMenuCommand("Auto-Inject on " + location.hostname, removeHost);
  75. } else {
  76. inject();
  77. injectedStatus = true;
  78. GM_registerMenuCommand("Stop Auto-Injecting " + name, addHost);
  79. }
  80. } catch (err) {
  81. console.log("Error adding Inject menu items: " + name);
  82. console.log(err);
  83. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址