Coder Utils

【使用前先看介绍/有问题可反馈】【欢迎一键三连(好评+打赏+收藏),你的支持是作者维护下去的最大动力!】Coder Utils(程序员专属工具)为程序员专门准备的常用 JavaScript 函数。目前已有:发送请求、下载文件、文本复制。

当前为 2020-12-06 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Coder Utils
  3. // @name:en Coder Utils
  4. // @namespace http://tampermonkey.net/
  5. // @version 0.1.0
  6. // @description 【使用前先看介绍/有问题可反馈】【欢迎一键三连(好评+打赏+收藏),你的支持是作者维护下去的最大动力!】Coder Utils(程序员专属工具)为程序员专门准备的常用 JavaScript 函数。目前已有:发送请求、下载文件、文本复制。
  7. // @description:en 【使用前先看介绍/有问题可反馈】【欢迎一键三连(好评+打赏+收藏),你的支持是作者维护下去的最大动力!】Coder Utils(程序员专属工具)为程序员专门准备的常用 JavaScript 函数。目前已有:发送请求、下载文件、文本复制。
  8. // @author cc
  9. // @include *
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. /**
  16. * @brief 发送请求,若请求成功,请求结果将存储于 location.response
  17. * @param {string} url 请求 URL
  18. * @param {string} params 请求参数,形式为 'k1=v1&k2=v2(&...)',默认为无参数
  19. * @param {string} mode 请求类型,默认为 GET 请求
  20. */
  21. function sendRequest(url, params='', mode='GET') {
  22. let request = new XMLHttpRequest();
  23. if (mode == 'GET') {
  24. url = `${url}?${encodeURIComponent(params)}`;
  25. };
  26. request.open(mode, url, true);
  27. request.setRequestHeader('Content-Type', 'application/json');
  28. request.send(params);
  29. request.onreadystatechange = function () {
  30. if (request.readyState == 4 && request.status == 200) {
  31. location.response = request.responseText;
  32. };
  33. };
  34. };
  35. /**
  36. * @brief 下载 CSV 文件
  37. * @param {string} csvContent CSV 数据,请使用 ',' 分隔数据值,使用 '\n' 分隔数据行,默认为空字符串
  38. * @param {*} fileName 下载的 CSV 文件名,默认为 data.csv
  39. */
  40. function downloadCsv(csvContent='', fileName='data.csv') {
  41. let pom = document.createElement('a');
  42. let blob = new Blob(['\ufeff' + csvContent], {type: 'text/csv;charset=utf-8;'});
  43. let url = URL.createObjectURL(blob);
  44. pom.href = url;
  45. pom.setAttribute('download', fileName);
  46. document.body.appendChild(pom);
  47. pom.click();
  48. document.body.removeChild(pom);
  49. };
  50. /**
  51. * @brief 将字符串复制至剪切板
  52. * @param {string} content 需要复制到剪切板的内容,默认为空字符串
  53. */
  54. function copyToClipboard(content='') {
  55. let textarea = document.createElement('textarea');
  56. textarea.value = content;
  57. document.body.appendChild(textarea);
  58. textarea.select();
  59. document.execCommand('copy');
  60. document.body.removeChild(textarea);
  61. };
  62. // 以上所有工具被定义于 location.utils 中
  63. location.utils = {
  64. sendRequest: sendRequest,
  65. downloadCsv: downloadCsv,
  66. copyToClipboard: copyToClipboard,
  67. };
  68. })();

QingJ © 2025

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