gm-inject

Inject scripts into the web pages.

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/scripts/494512/1373878/gm-inject.js

  1. // ==UserScript==
  2. // @name gm-inject
  3. // @description Inject scripts into the web pages.
  4. // @author Jason Kwok
  5. // @namespace https://jasonhk.dev/
  6. // @version 1.0.0
  7. // @license MIT
  8. // ==/UserScript==
  9.  
  10. let GM_injectPageScript;
  11. {
  12. let counter = 1;
  13.  
  14. GM_injectPageScript = function GM_injectPageScript(source, args, options)
  15. {
  16. const {
  17. name = `injected-${counter++}`,
  18. } = options ?? {};
  19.  
  20. const scriptWrapper = document.createElement("div");
  21. scriptWrapper.style.display = "none";
  22.  
  23. const shadowRoot = scriptWrapper.attachShadow({ mode: "closed" });
  24.  
  25. const script = document.createElement("script");
  26. script.textContent = `(${source})(${JSON.stringify(args ?? {})}); //# sourceURL=userscript://${encodeURIComponent(GM.info.script.name)}/${encodeURIComponent(name)}.js`;
  27.  
  28. shadowRoot.append(script);
  29. (document.body ?? document.head ?? document.documentElement).append(scriptWrapper);
  30. };
  31. }
  32.  
  33. GM.injectPageScript = GM_injectPageScript;

QingJ © 2025

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