禁用Service Workers

阻止Service Worker注册(不可用),并移除现有的Service Workers,杜绝网上垃圾。

  1. // ==UserScript==
  2. // @name Block Service Workers
  3. // @name:zh-CN 禁用Service Workers
  4. // @namespace Violentmonkey Scripts
  5. // @match *://*/*
  6. // @grant GM_addElement
  7. // @grant GM_info
  8. // @version 0.7
  9. // @grant GM_log
  10. // @author axototl
  11. // @license Unlicense
  12. // @description Blocks Service Worker's registration.
  13. // @description:zh-CN 阻止Service Worker注册(不可用),并移除现有的Service Workers,杜绝网上垃圾。
  14. // @icon https://www.w3.org/favicon.ico
  15. // @run-at document-start
  16. // ==/UserScript==
  17. 'use strict';
  18.  
  19. const main = async (logger) => {
  20. 'use strict';
  21. if (!('serviceWorker' in navigator)) {
  22. console.warn("Did not detected SW APIs, exiting...");
  23. return;
  24. }
  25. logger("Removing Service Workers API, please wait...");
  26. navigator.serviceWorker.register =
  27. () => new Promise((res, rej) => rej("This method is not allowed!"));
  28. logger("Deregistering Installed Service Workers, please wait...");
  29. (await navigator.serviceWorker.getRegistrations())
  30. .forEach(it => it.unregister());
  31. logger("All done!");
  32. }
  33.  
  34. if (GM_info.injectInto === 'page' || GM_info.sandboxMode === "raw") main(GM_log);
  35. else {
  36. const blobURL = URL.createObjectURL(new Blob([`(${main.toString()})(console.log);`], {type: "text/javascript"}));
  37. GM_addElement("script", {src: blobURL}).onload =
  38. () => setTimeout(() => (URL.revokeObjectURL(blobURL), GM_log("Destroyed")), 1000);
  39. }

QingJ © 2025

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