Console Importer

通过控制台导入 JS / CSS 库

当前为 2023-09-17 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Console Importer
  3. // @name:en Console Importer
  4. // @description 通过控制台导入 JS / CSS 库
  5. // @description:en Import JavaScript or CSS Library in browser developer tool.
  6. // @author Yiero
  7. // @version 1.0.1
  8. // @match https://*/*
  9. // @license GPL
  10. // @icon https://bbs.tampermonkey.net.cn/favicon.ico
  11. // @run-at document-body
  12. // @grant GM_addElement
  13. // @grant GM_xmlhttpRequest
  14. // @namespace https://github.com/AliubYiero/TamperMonkeyScripts/
  15. // @connect cdnjs.cloudflare.com
  16. // @connect cdn.bootcdn.net
  17. // @connect cdn.jsdelivr.net
  18. // ==/UserScript==
  19. function isCSS(url) {
  20. return url.endsWith("css");
  21. }
  22.  
  23. const urlList = new Map;
  24.  
  25. function getRequire(url) {
  26. if (urlList.has(url)) {
  27. console.error("[%s] \u83b7\u53d6\u6570\u636e\u5931\u8d25...\n\u5f53\u524d\u9875\u9762\u4e2d\u5df2\u5b58\u5728\u5e93 [%s]", "Console Importer", url);
  28. return;
  29. }
  30. console.info("[%s] \u6b63\u5728\u52a0\u8f7d\u6570\u636e...", "Console Importer");
  31. GM_xmlhttpRequest({
  32. method: "GET",
  33. url: url,
  34. onload(e) {
  35. const scriptText = e.responseText;
  36. const isScript = !isCSS(url);
  37. console.info("[%s] \u6210\u529f\u83b7\u53d6%s, \u6b63\u5728\u8f7d\u5165\u9875\u9762...", "Console Importer", isScript ? "\u811a\u672c" : "\u6837\u5f0f\u8868");
  38. const element = GM_addElement(document.head, isScript ? "script" : "style", {
  39. textContent: scriptText
  40. });
  41. urlList.set(url, element.id);
  42. console.info("[%s] %s\u8f7d\u5165\u6210\u529f.\n[%s]", "Console Importer", isScript ? "\u811a\u672c" : "\u6837\u5f0f\u8868", url);
  43. },
  44. onerror(e) {
  45. console.error("[%s] \u83b7\u53d6\u6570\u636e\u5931\u8d25...\nError: ", "Console Importer", e.error);
  46. }
  47. });
  48. }
  49.  
  50. (() => {
  51. unsafeWindow.$i = getRequire;
  52. })();