再见TechGrow

通过禁止techgrow的请求来阻止TechGrow强制公众号引流弹窗

  1. // ==UserScript==
  2. // @name 再见TechGrow
  3. // @namespace com.blackfat91
  4. // @version 2024-08-30
  5. // @description 通过禁止techgrow的请求来阻止TechGrow强制公众号引流弹窗
  6. // @author blackfat91
  7. // @license WTFPL
  8. // @match http*://*/*
  9. // @icon https://open.techgrow.cn/1.2.2/static/img/favicon.ico
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. // 在页面开始加载时,替换 document.createElement 函数,从而拦截所有 script 标签
  16. const originalCreateElement = document.createElement;
  17. document.createElement = function(tagName) {
  18. if (tagName === 'script') {
  19. // 如果标签名是 script,则返回一个新的 script 标签对象
  20. return new Proxy(originalCreateElement.call(document, tagName), {
  21. get(target, property) {
  22. if (property === 'src') {
  23. // 如果读取 src 属性,则判断是否为 readmore.js,如果是则返回空字符串
  24. const src = target.getAttribute('src');
  25. if (src && src.endsWith('/readmore.js')) {
  26. console.log(`Blocked script: ${src}`);
  27. return '';
  28. }
  29. }
  30. // 否则返回原始属性值
  31. return target[property];
  32. },
  33. });
  34. } else {
  35. // 对于其他标签名,返回原始对象
  36. return originalCreateElement.call(document, tagName);
  37. }
  38. };
  39. })();
  40.