{"_id":"@gentbo/core","_rev":"29-49745d6d5052641685e8cdd55e12db1d","name":"@gentbo/core","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.10":{"name":"@gentbo/core","version":"1.0.10","keywords":["http","request","post","get","response","client","transport","handler","timer","element","fetch","xhr","web framework"],"author":{"url":"https://developer.gentbo.com","name":"Zhou Bo","email":"zb@m775.com"},"license":"SEE LICENSE IN LICENSE","_id":"@gentbo/core@1.0.10","maintainers":[{"name":"zhwwb4","email":"zb@m775.com"}],"dist":{"shasum":"6b3606a3ce4716aff603e4b73cae3bd9f5f70b16","tarball":"https://registry.npmjs.org/@gentbo/core/-/core-1.0.10.tgz","fileCount":4,"integrity":"sha512-+CVEHRHspAaX8VaP0pK9RgUajbhLwpsyle31Zto8mJr+pxyUMrphJvob52g9hok7SxE+9CUw2M1T5h+mMkdaQg==","signatures":[{"sig":"MEUCIQD2j7GW7LT0B7kEXBMkV7pstOZ4KSdDgpIS2MDneKNjLAIgT+dCe7MizJB9S6iTG88/+hFrhqdhnb4Qu5IbqGmMza8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59397},"main":"gentbo.js","exports":{".":"./gentbo.js"},"gitHead":"84b2a808c4e2296a79a30ccb2da23b457db5f035","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"zhwwb4","email":"zb@m775.com"},"_npmVersion":"9.8.1","description":"A tiny modern JavaScript front-end framework for building interactive web applications.","directories":{},"sideEffects":true,"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.10_1785376428192_0.41250845938622693","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@gentbo/core","version":"1.0.11","keywords":["http","request","post","get","response","client","transport","handler","timer","element","fetch","xhr","web framework"],"author":{"url":"https://developer.gentbo.com","name":"Zhou Bo","email":"zb@m775.com"},"license":"SEE LICENSE IN LICENSE","_id":"@gentbo/core@1.0.11","maintainers":[{"name":"zhwwb4","email":"zb@m775.com"}],"dist":{"shasum":"b1024f2f88485b7d3a43087abd25b1c45b1cdb3b","tarball":"https://registry.npmjs.org/@gentbo/core/-/core-1.0.11.tgz","fileCount":4,"integrity":"sha512-MCQ2zlpNhxcHSbnjR/xk8eCuozLCitY6hWVEmIBtbAXEITwE9iNBU6vC2QT/yiZr/9hcRcgxec6J4I79S7AP4g==","signatures":[{"sig":"MEQCIHgZHQyz8BzTMDsIp6oUOm69E5UAMZRwqU/Xr+raJH7nAiAC+u+8oGc6Rjo8l2vL7Gp4B7Z0mK0TC8V7LswcQN8IIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60305},"main":"gentbo.js","exports":{".":"./gentbo.js"},"gitHead":"a2757dd490f54c62676f6faaac247e7c52b6d88e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"zhwwb4","email":"zb@m775.com"},"_npmVersion":"9.8.1","description":"A tiny modern JavaScript front-end framework for building interactive web applications.","directories":{},"sideEffects":true,"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.11_1788243612065_0.8037860258958447","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@gentbo/core","version":"1.1.0","keywords":["http","request","post","get","response","client","transport","handler","timer","element","fetch","xhr","web framework"],"author":{"url":"https://developer.gentbo.com","name":"Zhou Bo","email":"zb@m775.com"},"license":"SEE LICENSE IN LICENSE","_id":"@gentbo/core@1.1.0","maintainers":[{"name":"zhwwb4","email":"zb@m775.com"}],"dist":{"shasum":"acccdd447c34067bdd30a5a0a0843215c76675f2","tarball":"https://registry.npmjs.org/@gentbo/core/-/core-1.1.0.tgz","fileCount":4,"integrity":"sha512-5aI8tTvdN1z3gBjmMkm0O0PgC+DE4uczj0oykndLRvWOdjF6iGs3mDwpDH9rS90J6gmfykLthMDLaX9HV/qBoQ==","signatures":[{"sig":"MEQCIETgaPIMFhpwZDATJbzzRRjaThG5RKVh7aU2f+rqSJO8AiBz1+jeIpFJ8DqNVT6LAv5Pyl5skkYs0ks0rU4GRaFqCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBq04PXyZZJlaY+lcb0aZmAvNQ85UjhLmI4OvlNVA3qXAiEAkRI86Y2Kg7Oou2mB5gbSh2k8kThh3qCL5fUjfpwJs0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62435},"main":"gentbo.js","exports":{".":"./gentbo.js"},"gitHead":"4291bc9e60eb1eeeb12652748266c5b161a4d410","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"zhwwb4","email":"zb@m775.com"},"_npmVersion":"9.8.1","description":"A tiny modern JavaScript front-end framework for building interactive web applications.","directories":{},"sideEffects":true,"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1789721940867_0.27154875731389194","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"_id":"@gentbo/core@1.1.1","dist":{"shasum":"45e3645494402ab2ef8f9dec89fa5f4e94c70b3f","tarball":"https://registry.npmjs.org/@gentbo/core/-/core-1.1.1.tgz","fileCount":4,"integrity":"sha512-dMF0pXWsO0U6UzO35stJvlbntAaYeZLbQrJzF7C0/QnNZ0TNLocUJ+/VkYZ00M+owsiPznKGpbvlGrQv2BjvDw==","signatures":[{"sig":"MEUCIQD2egQsqh53fedhGkP8aI6mSh7Ijj/V2MAcUDGqpsVIZQIgYiYOB5wBDoHLvwUKIPG3IZe5N3DcaFCHINR138mMV4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID8ltfPLMFNpM3Dsgza03j9r92f6KWjL3eDTlGxxOclYAiAnJKSpEn4QPoVGfU5TWA1PBVvrU1TvUCdbuySD5Tvc2w=="}],"unpackedSize":63149},"main":"gentbo.js","name":"@gentbo/core","author":{"url":"https://developer.gentbo.com","name":"Zhou Bo","email":"zb@m775.com"},"exports":{".":"./gentbo.js"},"gitHead":"6206a078282eb39a1c92e2854511e3bc392590bb","license":"SEE LICENSE IN LICENSE","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.1","_npmUser":{"name":"zhwwb4","email":"zb@m775.com"},"keywords":["http","request","post","get","response","client","transport","handler","timer","element","fetch","xhr","web framework"],"_npmVersion":"9.8.1","description":"A tiny modern JavaScript front-end framework for building interactive web applications.","directories":{},"maintainers":[{"name":"zhwwb4","email":"zb@m775.com"}],"sideEffects":true,"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.1.1_1789888139266_0.590181861727332"}}},"time":{"created":"2026-07-24T07:08:02.409Z","modified":"2026-09-20T07:08:59.544Z","1.0.0":"2025-07-24T10:16:03.200Z","1.0.1":"2025-07-24T10:28:09.516Z","1.0.2":"2025-07-25T06:10:22.867Z","1.0.3":"2025-07-25T06:29:39.801Z","1.0.4":"2025-07-26T10:33:46.155Z","1.0.5":"2025-07-28T09:10:21.219Z","1.0.6":"2026-07-24T03:24:41.835Z","2.0.0":"2026-07-24T07:08:02.623Z","2.0.1":"2026-07-24T08:53:10.653Z","1.0.7":"2026-07-28T06:40:24.790Z","1.0.8":"2026-07-29T07:23:34.533Z","1.0.9":"2026-07-29T09:40:49.985Z","1.0.10":"2026-07-30T01:53:48.314Z","1.0.11":"2026-09-01T06:20:12.211Z","1.1.0":"2026-09-18T08:59:00.956Z","1.1.1":"2026-09-20T07:08:59.346Z"},"author":{"url":"https://developer.gentbo.com","name":"Zhou Bo","email":"zb@m775.com"},"license":"SEE LICENSE IN LICENSE","keywords":["http","request","post","get","response","client","transport","handler","timer","element","fetch","xhr","web framework"],"description":"A tiny modern JavaScript front-end framework for building interactive web applications.","maintainers":[{"name":"zhwwb4","email":"zb@m775.com"}],"readme":"# 📘 GENTBO Core Utility Collection\n\n> `Gentbo Core`一个轻量级、多功能的浏览器端 JavaScript 工具库\n> \n> 更加详细的文档请前往官网查看\n\n---\n\n## 特点\n\n- 🚀 零依赖\n- 🔗 链式调用\n- 🌐 浏览器原生支持\n- 📦 支持 npm\n- ⚡ 轻量高效\n\n---\n# 安装\n直接引入：\n```html\n<script src=\"https://cloud.m775.net/js/gentbo.js\"></script>\n```\nnpm：\n\n```shell\nnpm i @gentbo/core\n```\n```javascript\nimport \"@gentbo/core\";\n```\n---\n\n# 调用方式\n\n所有工具统一通过：\n\n```javascript\nGB.工具名称()\n```\n\n例如：\n\n```javascript\nGB.System()\n```\n\n```javascript\nGB.Client()\n```\n\n```javascript\nGB.Transport()\n```\n\n---\n\n# 工具列表\n\n| 工具               | 说明     |\n| ---------------- | ------ |\n| GB.System()      | 系统工具   |\n| GB.Client()      | 客户端检测  |\n| GB.Format()      | 格式化工具  |\n| GB.Cache()       | 缓存工具   |\n| GB.Handler()     | 定时器工具  |\n| GB.Transport()   | 网络请求工具 |\n| GB.Event()       | 事件工具   |\n| GB.Element()     | DOM工具  |\n| GB.FormElement() | 表单工具   |\n| GB.ULElement()   | UL操作工具 |\n| GB.OLElement()   | OL操作工具 |\n\n---\n\n# API 文档\n\n# GB.System()\n\n系统相关工具。\n\n---\n\n## resize()\n\n全局 px 转 rem 自动缩放。\n\n### 参数\n\n| 参数    | 类型     | 说明   |\n| ----- | ------ | ---- |\n| width | Number | 标准宽度 |\n| size  | Number | 默认字号 |\n\n### 示例\n\n```javascript\nGB.System().resize(750,16);\n```\n\n说明：\n\n当页面宽度为：\n\n```\n750px\n```\n\n时：\n\n```\n1rem = 100px\n```\n\n页面宽度变化时，字号自动等比例缩放。\n\n---\n\n## ready()\n\n页面 DOM 解析完成后执行。\n\n### 参数\n\n| 参数  | 类型       |\n| --- | -------- |\n| fun | Function |\n\n示例：\n\n```javascript\nGB.System().ready(()=>{\n    console.log(\n        \"DOM Ready\"\n    );\n\n});\n```\n\n---\n\n## complete()\n\n页面所有资源加载完成后执行。\n\n示例：\n\n```javascript\nGB.System().complete(()=>{\n    console.log(\n        \"页面加载完成\"\n    );\n});\n```\n\n---\n\n# GB.Client()\n\n客户端信息检测工具。\n\n---\n\n## os()\n\n获取当前操作系统类型。\n\n### 返回\n\n```javascript\nString\n```\n\n示例：\n\n```javascript\nGB.Client().os();\n```\n\n---\n\n## browser()\n\n获取浏览器信息。\n\n### 参数\n\n| 参数     | 类型      | 说明                     |\n| ------ | ------- | ---------------------- |\n| simple | Boolean | true只返回名称，false返回名称和版本 |\n\n示例：\n\n```javascript\nGB.Client().browser(false);\n```\n\n返回：\n\n```javascript\n{\n    name:\"\",\n    ver:\"\"\n}\n```\n\n---\n\n## query()\n\n获取 URL 查询字符串。\n\n示例：\n\n```javascript\nGB.Client().query();\n```\n\n返回：\n\n```\nid=1&name=test\n```\n\n---\n\n## param()\n\n获取 URL 参数。\n\n### 参数\n\n| 参数  | 说明          |\n| --- | ----------- |\n| key | 参数名称，不传返回全部 |\n\n示例：\n\n```javascript\nGB.Client().param(\"id\");\n```\n\n返回：\n\n```\n1\n```\n\n获取全部：\n\n```javascript\nGB.Client().param();\n```\n\n返回：\n\n```javascript\n{\n    id:\"1\",\n    name:\"test\"\n}\n```\n\n---\n\n## url()\n\n获取当前完整 URL。\n\n```javascript\nGB.Client().url();\n```\n\n---\n\n## path()\n\n获取当前请求路径。\n\n```javascript\nGB.Client().path();\n```\n\n---\n\n## isMobile()\n\n判断是否移动端。\n\n```javascript\nGB.Client().isMobile();\n```\n\n返回：\n\n```javascript\ntrue / false\n```\n\n---\n\n## isWeixin()\n\n判断是否微信浏览器。\n\n```javascript\nGB.Client().isWeixin();\n```\n\n返回：\n\n```javascript\ntrue / false\n```\n\n---\n\n# GB.Format()\n\n数据格式化工具。\n\n---\n\n## date()\n\n获取格式化日期。\n\n### 参数\n\n| 参数        | 类型     | 说明                    |\n| --------- | ------ | --------------------- |\n| type      | String | 输出格式                  |\n| timestamp | Number | 时间戳(10位或13位)，为空使用当前时间 |\n\n支持格式：\n\n| 格式  | 说明  |\n| --- | --- |\n| Y   | 年   |\n| m   | 月   |\n| d   | 日   |\n| H   | 小时  |\n| i   | 分钟  |\n| s   | 秒   |\n\n示例：\n\n```javascript\nGB.Format().date(\"Y-m-d H:i:s\");\n```\n\n返回：\n\n```\n2026-07-24 12:00:00\n```\n\n---\n\n## time()\n\n获取时间戳。\n\n### 参数\n\n| 参数     | 类型     | 说明            |\n| ------ | ------ | ------------- |\n| length | Number | 长度：10或13      |\n| date   | String | 指定日期，为空使用当前时间 |\n\n示例：\n\n```javascript\nGB.Format().time(10);\n```\n\n返回：\n\n```\n1753333333\n```\n\n---\n\n## secondToDate()\n\n秒转换时间。\n\n### 参数\n\n| 参数      | 类型     | 说明            |\n| ------- | ------ | ------------- |\n| seconds | Number | 秒数            |\n| type    | String | 时间格式，例如 h:i:s |\n\n示例：\n\n```javascript\nGB.Format().secondToDate(3661,\"h:i:s\");\n```\n\n返回：\n\n```\n01:01:01\n```\n\n---\n\n## queryToObj()\n\nQuery字符串转换对象。\n\n### 参数\n\n| 参数    | 类型     | 说明    |\n| ----- | ------ | ----- |\n| query | String | 查询字符串 |\n\n示例：\n\n```javascript\nGB.Format().queryToObj(\"id=1&name=test\");\n```\n\n返回：\n\n```javascript\n{\n    id:\"1\",\n    name:\"test\"\n}\n```\n\n---\n\n## objToQuery()\n\n对象转换 Query 字符串。\n\n### 参数\n\n| 参数  | 类型     | 说明      |\n| --- | ------ | ------- |\n| obj | Object | 需要转换的对象 |\n\n示例：\n\n```javascript\nGB.Format().objToQuery({\n    id:1,\n    name:\"test\"\n});\n```\n\n返回：\n\n```\nid=1&name=test\n```\n\n---\n\n## objToString()\n\n对象转换自定义字符串。\n\n### 参数\n\n| 参数        | 类型     | 说明    |\n| --------- | ------ | ----- |\n| obj       | Object | 对象    |\n| split     | String | 字段分隔符 |\n| delimiter | String | 键值分隔符 |\n\n示例：\n\n```javascript\nGB.Format().objToString(\n    {\n        a:1,\n        b:2\n    },\n    \"&\",\n    \"=\"\n);\n```\n\n返回：\n\n```\na=1&b=2\n```\n\n---\n\n## objToForm()\n\n对象转换 FormData。\n\n### 参数\n\n| 参数  | 类型     |\n| --- | ------ |\n| obj | Object |\n\n示例：\n\n```javascript\nGB.Format().objToForm({\n    username:\"admin\"\n});\n```\n\n返回：\n\n```javascript\nFormData\n```\n\n---\n\n## xmlToObject()\n\nXML 转换对象。\n\n### 参数\n\n| 参数  | 类型     |\n| --- | ------ |\n| xml | String |\n\n示例：\n\n```javascript\nGB.Format().xmlToObject(xml);\n```\n\n---\n\n# GB.Cache(table)\n\n缓存管理工具。\n\n`table` 表示缓存名称。\n\n示例：\n\n```javascript\nGB.Cache(\"user\")\n```\n\n缓存有效期规则：\n\n| 值     | 说明             |\n| ----- | -------------- |\n| false | 只操作当前缓存，不处理持久化 |\n| 0     | 仅当前有效，同时删除持久化  |\n| >0    | 指定秒数有效         |\n| -1    | 永久有效           |\n\n---\n\n## set()\n\n设置缓存。\n\n### 参数\n\n| 参数     | 类型     | 说明   |\n| ------ | ------ | ---- |\n| data   | Object | 缓存数据 |\n| expiry | Number | 有效期  |\n\n示例：\n\n```javascript\nGB.Cache(\"user\").set({\n    id:1,\n    name:\"gentbo\"\n});\n```\n\n---\n\n## get()\n\n获取缓存。\n\n### 参数\n\n| 参数     | 类型            | 说明      |\n| ------ | ------------- | ------- |\n| key    | String/Number | 缓存键     |\n| expiry | Number        | 自动刷新有效期 |\n\n示例：\n\n```javascript\nGB.Cache(\"user\").get(\"name\");\n```\n\n---\n\n## add()\n\n添加缓存项。\n\n### 参数\n\n| 参数     | 类型            | 说明  |\n| ------ | ------------- | --- |\n| key    | String/Number | 键名  |\n| value  | Mixed         | 值   |\n| expiry | Number        | 有效期 |\n\n示例：\n\n```javascript\nGB.Cache(\"user\").add(\n    \"name\",\n    \"gentbo\"\n);\n```\n\n---\n\n## delete()\n\n删除缓存项。\n\n### 参数\n\n| 参数     | 类型            | 说明  |\n| ------ | ------------- | --- |\n| key    | String/Number | 键名  |\n| expiry | Number        | 有效期 |\n\n示例：\n\n```javascript\nGB.Cache(\"user\").delete(\n    \"name\"\n);\n```\n\n---\n\n# GB.Cache 使用示例\n\n```javascript\nconst cache = GB.Cache(\"member\");\n\ncache.add(\"token\",\"xxxx\",3600);\n\nconst token = cache.get(\"token\");\n\nconsole.log(token);\n```\n\n---\n\n# GB.Handler()\n\n定时任务处理工具。\n\n用于创建循环任务、延迟任务。\n\n采用链式调用方式。\n\n---\n\n# 基础使用\n\n```javascript\nGB.Handler().cycle(-1).delay(1000).start(()=>{\n    console.log(\"执行任务\");\n});\n```\n\n---\n\n# cycle()\n\n设置执行次数。\n\n### 参数\n\n| 值   | 说明   |\n| --- | ---- |\n| -1  | 无限循环 |\n| 0   | 执行一次 |\n| 正整数 | 指定次数 |\n\n示例：\n\n```javascript\nGB.Handler().cycle(5).start(()=>{});\n```\n\n执行：\n\n```\n5次\n```\n\n---\n\n# delay()\n\n设置执行间隔。\n\n单位：\n\n```\n毫秒\n```\n\n示例：\n\n```javascript\nGB.Handler().delay(1000).start(()=>{});\n```\n\n表示：\n\n```\n每1秒执行一次\n```\n\n---\n\n# before()\n\n执行任务前回调。\n\n示例：\n\n```javascript\nGB.Handler().before(()=>{\n    console.log(\"开始\");\n});\n```\n\n---\n\n# after()\n\n执行任务后回调。\n\n示例：\n\n```javascript\nGB.Handler().after(()=>{\n    console.log(\n        \"结束\"\n    );\n});\n```\n\n---\n\n# start()\n\n启动任务。\n\n### 参数\n\n| 参数  | 类型       | 说明   |\n| --- | -------- | ---- |\n| fun | Function | 执行函数 |\n\n示例：\n\n```javascript\nGB.Handler().start(()=>{\n    console.log(\n        \"run\"\n    );\n});\n```\n\n---\n\n# GB.Transport()\n\n网络请求工具。\n\n基于：\n\n- Fetch API\n- XMLHttpRequest\n\n封装。\n\n支持：\n\n- GET\n- POST\n- PUT\n- DELETE\n- JSON\n- QUERY\n- XML\n- FORM\n- 文件上传\n- Header\n- Cookie\n- 超时控制\n- 请求生命周期\n\n---\n\n# 基础使用\n\n```javascript\nGB.Transport()\n.setUrl(\"/api/user\")\n.setParam({\n    id:1\n})\n.success(res=>{\n    console.log(\n        res.body\n    );\n})\n.post();\n```\n\n---\n\n# 请求方法\n\n## get()\n\nGET 请求。\n\n示例：\n\n```javascript\nGB.Transport()\n.setUrl(\n    \"/api/list\"\n)\n.get();\n```\n\n---\n\n## post()\n\nPOST 请求。\n\n示例：\n\n```javascript\nGB.Transport()\n.setUrl(\n    \"/api/save\"\n)\n.post();\n```\n\n---\n\n## put()\n\nPUT 请求。\n\n示例：\n\n```javascript\nGB.Transport()\n.setUrl(\n    \"/api/update\"\n)\n.put();\n```\n\n---\n\n## delete()\n\nDELETE 请求。\n\n示例：\n\n```javascript\nGB.Transport()\n\n.setUrl(\n    \"/api/delete\"\n)\n\n.delete();\n```\n\n---\n\n# 请求配置\n\n## type()\n\n设置请求方式。\n\n参数：\n\n| 值     | 说明             |\n| ----- | -------------- |\n| auto  | 自动             |\n| fetch | Fetch          |\n| xhr   | XMLHttpRequest |\n\n示例：\n\n```javascript\n.type(\"fetch\")\n```\n\n---\n\n## setUrl()\n\n设置请求地址。\n\n```javascript\n.setUrl(\n    \"/api/user\"\n)\n```\n\n---\n\n## setParam()\n\n设置请求参数。\n\n```javascript\n.setParam({\n\n    username:\"admin\",\n\n    password:\"123456\"\n\n})\n```\n\n---\n\n## addParam()\n\n添加请求参数。\n\n```javascript\n.addParam(\n    \"token\",\n    \"xxxx\"\n)\n```\n\n---\n\n## setTimeout()\n\n设置请求超时时间。\n\n单位：\n\n```\n秒\n```\n\n示例：\n\n```javascript\n.setTimeout(10)\n```\n\n---\n\n## async()\n\n设置异步请求。\n\n默认：\n\n```javascript\ntrue\n```\n\n示例：\n\n```javascript\n.async(false)\n```\n\n说明：\n\n同步模式仅 XMLHttpRequest 支持。\n\n---\n\n# 数据类型\n\n## setRequestType()\n\n设置请求数据格式。\n\n支持：\n\n```\nJSON\nQUERY\nFORM\nXML\n```\n\n示例：\n\n```javascript\n.setRequestType(\n    \"JSON\"\n)\n```\n\n---\n\n## setResponseType()\n\n设置响应数据格式。\n\n示例：\n\n```javascript\n.setResponseType(\n    \"JSON\"\n)\n```\n\n---\n\n# Header\n\n## setHeader()\n\n设置请求头。\n\n示例：\n\n```javascript\n.setHeader({\n\n    Authorization:\n    \"Bearer token\"\n\n})\n```\n\n---\n\n## addHeader()\n\n添加请求头。\n\n示例：\n\n```javascript\n.addHeader(\n    \"token\",\n    \"xxxx\"\n)\n```\n\n---\n\n# Cookie\n\n## autoCookie()\n\n自动 Cookie。\n\n参数：\n\n| 值   | 说明  |\n| --- | --- |\n| 0   | 关闭  |\n| 1   | 同源  |\n| 2   | 跨域  |\n\n示例：\n\n```javascript\n.autoCookie(1)\n```\n\n---\n\n## setCookie()\n\n设置 Cookie。\n\n示例：\n\n```javascript\n.setCookie({\n\n    token:\"123456\"\n\n})\n```\n\n---\n\n## addCookie()\n\n添加 Cookie。\n\n示例：\n\n```javascript\n.addCookie(\n\n    \"user\",\n\n    \"admin\"\n\n)\n```\n\n---\n\n# 文件上传\n\n## setFile()\n\n设置上传文件。\n\n示例：\n\n```javascript\n.setFile({\n\n    image:file\n\n})\n```\n\n---\n\n## addFile()\n\n添加上传文件。\n\n示例：\n\n```javascript\n.addFile(\n\n    \"image\",\n\n    file\n\n)\n```\n\n---\n\n# FORM 文件上传示例\n\n```javascript\nGB.Transport()\n.setUrl(\"/upload\")\n.setRequestType(\"FORM\")\n.setFile({\n    file:file\n})\n.success(res=>{\n    console.log(res);\n})\n.post();\n```\n\n---\n\n# 生命周期回调\n\n## before()\n\n请求发送之前执行。\n\n```javascript\n.before(data=>{})\n```\n\n---\n\n## success()\n\n请求成功。\n\n```javascript\n.success(res=>{})\n```\n\n返回结构：\n\n```javascript\n{\n    header:{},\n    cookie:{},\n    body:null\n}\n```\n\n---\n\n## error()\n\nHTTP错误。\n\n```javascript\n.error((code,res)=>{\n\n})\n```\n\n处理：\n\n```\n400\n403\n404\n500\n```\n\n等错误。\n\n---\n\n## catch()\n\n请求异常。\n\n```javascript\n.catch(error=>{\n\n})\n```\n\n例如：\n\n- 网络异常\n- 超时\n- Fetch失败\n\n---\n\n## complete()\n\n请求完成。\n\n```javascript\n.complete(res=>{\n\n})\n```\n\n---\n\n# Transport完整示例\n\n```javascript\nGB.Transport()\n.setUrl(\"/api/login\")\n.setRequestType(\"JSON\")\n.setParam({\n    username:\"admin\",\n    password:\"123456\"\n})\n.setHeader({\n    token:\"xxxx\"\n})\n.autoCookie(1)\n.setTimeout(15)\n.before(data=>{\n    console.log(\n        data\n    );\n})\n.success(res=>{\n    console.log(\n        res.body\n    );\n})\n.error(code=>{\n    console.log(\n        code\n    );\n})\n.catch(error=>{\n    console.error(\n        error\n    );\n})\n.complete(()=>{\n    console.log(\n        \"完成\"\n    );\n})\n.post();\n```\n\n---\n\n# GB.FormElement()\n\n表单处理工具。\n\n用于：\n\n- 动态创建表单\n- 获取表单数据\n- 修改表单状态\n- 操作 Select\n- 表单提交处理\n\n使用：\n\n```javascript\nGB.FormElement(\"#form\")\n```\n\n支持：\n\n- CSS Selector\n- HTMLElement\n\n---\n\n# submit()\n\n绑定表单提交事件。\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").submit(()=>{\n    console.log(\n        \"submit\"\n    );\n});\n```\n\n---\n\n# setAction()\n\n设置提交地址。\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").setAction(\n    \"/api/save\"\n);\n```\n\n---\n\n# create()\n\n创建表单元素。\n\n### 参数\n\n| 参数         | 类型     | 说明   |\n| ---------- | ------ | ---- |\n| type       | String | 元素类型 |\n| index      | Number | 插入位置 |\n| label_name | String | 标签名称 |\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").create(\n    \"input\",\n    -1,\n    \"用户名\"\n);\n```\n\n---\n\n# switchByName()\n\n根据 name 切换元素。\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").switchByName(\"username\");\n```\n\n---\n\n# removeByName()\n\n根据 name 删除元素。\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").removeByName(\"username\");\n```\n\n---\n\n# getValue()\n\n获取当前元素值。\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").getValue();\n```\n\n---\n\n# getValues()\n\n获取全部表单值。\n\n### 参数\n\n| 参数      | 类型      | 说明      |\n| ------- | ------- | ------- |\n| disable | Boolean | 是否包含禁用项 |\n\n示例：\n\n```javascript\nGB.FormElement(\"#form\").getValues();\n```\n\n返回：\n\n```javascript\n{\n    username:\"admin\",\n    password:\"123456\"\n}\n```\n\n---\n\n# getValueByName()\n\n根据 name 获取值。\n\n示例：\n\n```javascript\n.getValueByName(\"username\")\n```\n\n---\n\n# getValueByIndex()\n\n根据索引获取值。\n\n示例：\n\n```javascript\n.getValueByIndex(0)\n```\n\n---\n\n# Input 操作\n\n## setType()\n\n设置 input 类型。\n\n示例：\n\n```javascript\n.setType(\"password\")\n```\n\n---\n\n## setNotice()\n\n设置 placeholder。\n\n示例：\n\n```javascript\n.setNotice(\"请输入内容\")\n```\n\n---\n\n## disabled()\n\n设置禁用。\n\n示例：\n\n```javascript\n.disabled()\n```\n\n---\n\n# Select 操作\n\n## addOption()\n\n添加 option。\n\n### 参数\n\n| 参数    | 说明   |\n| ----- | ---- |\n| value | 选项值  |\n| text  | 显示文字 |\n| index | 插入位置 |\n\n示例：\n\n```javascript\n.addOption(\"1\",\"北京\")\n```\n\n---\n\n## setOptionDefaultToFirst()\n\n设置第一个选项为默认。\n\n示例：\n\n```javascript\n.setOptionDefaultToFirst()\n```\n\n---\n\n## setOptionDefaultToLast()\n\n设置最后一个选项为默认。\n\n示例：\n\n```javascript\n.setOptionDefaultToLast()\n```\n\n---\n\n## setOptionDefaultByIndex()\n\n根据索引设置默认。\n\n示例：\n\n```javascript\n.setOptionDefaultByIndex(2)\n```\n\n---\n\n## setOptionDefaultByValue()\n\n根据值设置默认。\n\n示例：\n\n```javascript\n.setOptionDefaultByValue(\"beijing\")\n```\n\n---\n\n# removeOption()\n\n删除 option。\n\n### 参数\n\n| 参数        | 说明      |\n| --------- | ------- |\n| saveFirst | 是否保留第一项 |\n\n示例：\n\n```javascript\n.removeOption(true)\n```\n\n---\n\n# removeOptionByValue()\n\n根据值删除 option。\n\n示例：\n\n```javascript\n.removeOptionByValue(\"1\")\n```\n\n---\n\n# GB.Element()\n\nDOM 元素操作工具。\n\n示例：\n\n```javascript\nGB.Element(\"#app\")\n```\n\n用于：\n\n- DOM查找\n- 属性操作\n- 样式操作\n- 节点操作\n\n---\n\n# GB.Event()\n\n事件处理工具。\n\n示例：\n\n```javascript\nGB.Event()\n```\n\n用于：\n\n- 事件绑定\n- 事件解绑\n- 事件代理\n\n---\n\n# GB.ULElement()\n\nUL 列表操作工具。\n\n示例：\n\n```javascript\nGB.ULElement(\"#list\")\n```\n\n用于：\n\n- UL列表创建\n- 列表数据绑定\n- 列表项操作\n\n---\n\n# GB.OLElement()\n\nOL 列表操作工具。\n\n示例：\n\n```javascript\nGB.OLElement(\"#list\")\n```\n\n用于：\n\n- OL列表创建\n- 序号列表管理\n- 列表项操作\n\n---\n\n# 浏览器支持\n\n支持现代浏览器：\n\n- Chrome\n- Edge\n- Firefox\n- Safari\n- Chromium内核浏览器\n\n要求：\n\n- ES6+\n- Promise\n- Fetch API\n- Class Private Field\n\n---\n\n# Gentbo Custom License\n\nCopyright (c) 2016-Present Zhou Bo  \n\nWebsite: https://developer.gentbo.com\n\nPermission is granted to use this software for personal, educational, and commercial projects without modification.\n\nYou may not:\n\n1. Modify this software.\n2. Reverse engineer, decompile, or create derivative works based on this software.\n3. Redistribute, resell, sublicense, or publish this software or modified versions.\n4. Remove or alter copyright notices.\n\nThis software is provided \"as is\", without warranty of any kind.\nFor commercial redistribution, OEM licensing, or special authorization:\n\nEmail: zb@m775.com QQ: 18486685 QQGroup: 431849998","readmeFilename":"README.md"}