油猴插件开发

336 阅读1分钟

插件功能:

apipost工具导出markdown文件,参数类型错误,展示为【text】。 故此开发此插件进行对接口文档重新进行导出。

修改方法

导出参数的时候 bodys.push([body.key, body.value, body.type, body .not_null == '1' ? '是' : '否', body.description ])
body.type为Text, body.field_type才是正确的参数类型。

修改的地方:

header/body/query/成功响应示例/失败响应示例

插件开发代码

// ==UserScript==
// @name         导出markdown
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       carle
// @match        http://10.16.160.195:*/shareDoc*
// @grant        all
// @require      https://code.jquery.com/jquery-3.5.1.min.js
// ==/UserScript==


    (function() {
        'use strict';
        window.onload = function () {
            let curFilterDom = document.getElementsByClassName('export')[0]
    
           if (curFilterDom) {
               console.log("a")
                curFilterDom.addEventListener('click', function (e) {
                  //exportMdCustom重写了原来的exportMd,修正了导出代码
                  exportMdCustom()
                })
            }
        }
     })();

参考插件发开地址:

zhuanlan.zhihu.com/p/103511371

常用文档

常见的原生javascript DOM操作
www.w3school.com.cn/js/js_htmld…
zhuanlan.zhihu.com/p/21823046
www.cnblogs.com/wfblog/p/88…

问题记录:

  1. jqeuy unbind click 无效, 因为unbind只针对jquery绑定的click。需要用原生js代码去除。
  2. 使用window.onload 在页面下载后执行js代码
  3. 在插件中如果要使用jquery, 需要添加@require code.jquery.com/jquery-3.5.…
  4. 使用addEventListener添加点击事件
  5. js返回dom元素一般是集合,需要使用某个元素记得加[0]

简述闭包

作用:
一个是前面提到的可以读取函数内部的变量, 另一个就是让这些变量的值始终保持在内存中。
一句话:外部函数可以通过调用子函数改变父函数变量的值。
详细文档:
www.ruanyifeng.com/blog/2009/0…