浏览器插件(AI灵驹)

AI灵驹浏览器插件 API 文档

基础信息

  • 插件名称: AI灵驹浏览器插件
  • 版本: 1.0.0
  • 服务协议: WebSocket隧道 + HTTP代理
  • 默认服务器: wss://res.dtns.top
  • 访问域名格式: http://browser.{clientId}.html.dtns.top

一、系统接口

1.1 健康检查

检查服务是否正常运行。

端点: GET /health

响应示例:

{
  "status": "ok",
  "clientId": "abc123def456...",
  "registeredDomains": ["browser.abc123...html.dtns.top"],
  "timestamp": "2024-01-01T00:00:00.000Z"
}

1.2 获取插件信息

获取插件版本和能力信息。

端点: GET /api/info

响应示例:

{
  "name": "AI灵驹浏览器插件",
  "version": "1.0.0",
  "clientId": "abc123def456...",
  "registeredDomains": ["browser.abc123...html.dtns.top"],
  "capabilities": ["smart_reply", "dom_query", "click", "type", "navigate", "clipboard", "evaluate"]
}

1.3 获取已注册域名

端点: GET /api/domains

响应示例:

{
  "success": true,
  "clientId": "abc123...",
  "registeredDomains": ["browser.abc123...html.dtns.top"]
}

二、页面信息接口

2.1 获取页面信息

获取当前活动标签页的基本信息。

端点: GET /api/page/info

响应示例:

{
  "success": true,
  "url": "https://example.com",
  "title": "Example Domain",
  "readyState": "complete"
}

2.2 获取页面可见文本

获取页面中所有可见文本内容。

端点: GET /api/page/visible-text

参数:

参数 类型 默认值 说明
includePosition boolean true 是否包含位置信息
mergeText boolean true 是否合并文本

响应示例:

{
  "success": true,
  "text": "合并的文本内容...",
  "blocks": [
    {
      "text": "文本块",
      "x": 100,
      "y": 200,
      "width": 300,
      "height": 20
    }
  ]
}

2.3 获取可见文本块(仅带位置)

端点: GET /api/page/visible-text/blocks

响应示例:

{
  "success": true,
  "blocks": [...],
  "total": 42
}

2.4 获取合并的纯文本

端点: GET /api/page/visible-text/merged

参数:

参数 类型 默认值 说明
separator string \n 文本块分隔符

响应示例:

{
  "success": true,
  "text": "纯文本内容...",
  "length": 1234
}

三、DOM操作接口

3.1 执行JavaScript脚本

在当前页面执行任意JavaScript代码。

端点: GET /api/script/evaluate

参数:

参数 类型 必填 说明
script string 要执行的JavaScript代码

响应示例:

{
  "success": true,
  "result": "执行结果",
  "type": "string"
}

3.2 查询DOM元素

端点: GET /api/query

参数:

参数 类型 必填 说明
selector string CSS选择器
all boolean 是否返回所有匹配元素

响应示例:

{
  "success": true,
  "result": {
    "text": "元素文本",
    "html": "<div>...</div>",
    "attributes": {...}
  }
}

3.3 获取元素信息

端点: GET /api/element/info

参数:

参数 类型 必填 说明
selector string CSS选择器

3.4 获取页面元素结构

端点: GET /api/page/elements

获取完整的DOM元素信息。

端点: GET /api/page/elements/simple (精简版)

3.5 获取页面链接

端点: GET /api/page/links

响应示例:

{
  "success": true,
  "links": [
    {
      "href": "https://...",
      "text": "链接文本",
      "title": "标题"
    }
  ]
}

3.6 获取页面图片

端点: GET /api/page/images

3.7 获取页面表单

端点: GET /api/page/forms

3.8 获取页面输入框

端点: GET /api/page/inputs

3.9 获取页面按钮

端点: GET /api/page/buttons


四、交互操作接口

4.1 点击元素

端点: GET /api/click

参数:

参数 类型 必填 说明
selector string CSS选择器

4.2 点击坐标位置

端点: GET /api/click/at

参数:

参数 类型 必填 说明
x number X坐标
y number Y坐标
double boolean 是否双击
button string 鼠标按键: left/right/middle

4.3 右键点击

端点: GET /api/click/right

参数:

参数 类型 必填 说明
x number X坐标
y number Y坐标

4.4 双击

端点: GET /api/click/double

参数:

参数 类型 必填 说明
x number X坐标
y number Y坐标

4.5 鼠标移动

端点: GET /api/mouse/move

参数:

参数 类型 必填 说明
x number X坐标
y number Y坐标

4.6 输入文本

端点: GET /api/type

参数:

参数 类型 必填 说明
selector string CSS选择器
text string 要输入的文本

4.7 智能回复

端点: GET /api/smart_reply

参数:

参数 类型 必填 说明
text string 回复文本
context string 上下文信息

五、页面导航接口

5.1 导航到URL

端点: GET /api/navigate

参数:

参数 类型 必填 说明
url string 目标URL

5.2 刷新页面

端点: GET /api/refresh

5.3 滚动页面

端点: GET /api/scroll

参数:

参数 类型 说明
x number 水平滚动量
y number 垂直滚动量

六、剪贴板接口

6.1 复制到剪贴板

端点: GET /api/clipboard/copy

参数:

参数 类型 必填 说明
text string ✅* 纯文本内容
html string ✅* HTML内容(*二选一)

6.2 读取剪贴板

端点: GET /api/clipboard/read

响应示例:

{
  "success": true,
  "text": "剪贴板文本",
  "html": "<b>HTML内容</b>",
  "length": 100
}

6.3 追加到剪贴板

端点: GET /api/clipboard/append

参数:

参数 类型 默认值 说明
text string 要追加的文本
separator string \n 分隔符

6.4 清空剪贴板

端点: GET /api/clipboard/clear


七、可点击元素接口

7.1 获取所有可点击元素

端点: GET /api/page/clickable-elements

参数:

参数 类型 默认值 说明
includePosition boolean true 是否包含位置信息
includeSelector boolean true 是否包含选择器

响应示例:

{
  "success": true,
  "total": 50,
  "elements": [...],
  "summary": {
    "buttons": 10,
    "links": 30,
    "interactive": 10
  }
}

7.2 按类型分组的可点击元素

端点: GET /api/page/clickable-elements/grouped

7.3 获取可点击元素选择器列表

端点: GET /api/page/clickable-elements/selectors


八、网络监控接口

8.1 开始监控

端点: GET /api/network/start

参数:

参数 类型 默认值 说明
duration number 30000 监控时长(ms),0表示持续监控

响应示例:

{
  "success": true,
  "message": "Network monitoring started for 30000ms",
  "tabId": 123,
  "url": "https://example.com"
}

8.2 停止监控

端点: GET /api/network/stop

响应示例:

{
  "success": true,
  "summary": {
    "total": 42,
    "byMethod": {"GET": 30, "POST": 12},
    "byStatus": {"200s": 38, "400s": 4},
    "errors": 4,
    "avgDuration": 150
  },
  "requests": [...],
  "totalCount": 42,
  "duration": 30000
}

8.3 获取监控状态

端点: GET /api/network/status

8.4 获取请求列表

端点: GET /api/network/requests

参数:

参数 类型 说明
limit number 返回数量限制,默认100
method string 按方法过滤(GET/POST等)
urlPattern string URL正则匹配

8.5 获取请求详情

端点: GET /api/network/request/detail

参数:

参数 类型 必填 说明
requestId string 请求ID

8.6 清除网络记录

端点: GET /api/network/clear


九、截图接口

9.1 截取当前页面

端点: GET /api/screenshot

响应示例:

{
  "success": true,
  "imageData": "data:image/png;base64,..."
}

十、选中文本接口

10.1 获取选中的文本

端点: GET /api/selected/text

响应示例:

{
  "success": true,
  "text": "用户选中的文本"
}

十一、标签页管理接口

11.1 获取所有标签页

端点: GET /api/tabs/list

参数:

参数 类型 说明
active boolean 仅活动标签页
currentWindow boolean 仅当前窗口

11.2 获取当前标签页

端点: GET /api/tabs/current

11.3 切换标签页

端点: GET /api/tabs/switch

参数(四选一):

参数 类型 说明
tabId number 标签页ID
index number 标签页索引
url string URL匹配
title string 标题匹配
focusWindow boolean 是否聚焦窗口

11.4 打开新标签页

端点: GET /api/tabs/open

参数:

参数 类型 默认值 说明
url string 要打开的URL
active boolean true 是否激活新标签页
position string/number 'end' 位置: start/end/索引
windowId number - 指定窗口ID

11.5 批量打开标签页

端点: GET /api/tabs/open/batch

参数:

参数 类型 说明
urls array/string URL列表(支持JSON数组或逗号分隔)
active string 激活哪个: first/last/索引
position string start/end/索引
windowId number 窗口ID

11.6 打开或切换标签页

端点: GET /api/tabs/openOrSwitch

参数:

参数 类型 说明
url string ✅ 目标URL
active boolean 是否激活

11.7 后台打开标签页

端点: GET /api/tabs/open/background

参数:

参数 类型 说明
url string ✅ 目标URL

11.8 关闭标签页

端点: GET /api/tabs/close

参数(多选一):

参数 类型 说明
tabId number 单个标签页ID
tabIds array/string 多个标签页ID
url string 按URL匹配关闭
title string 按标题匹配关闭
current boolean 关闭当前标签页

十二、窗口管理接口

12.1 打开新窗口

端点: GET /api/windows/open

参数:

参数 类型 说明
urls array/string 要在新窗口打开的URL列表
active boolean 是否聚焦新窗口
width number 窗口宽度
height number 窗口高度
left number X位置
top number Y位置
type string 窗口类型: normal/popup/panel

十三、控制台日志接口

13.1 获取控制台日志

端点: GET /api/console/logs

参数:

参数 类型 默认值 说明
limit number 100 返回数量
level string - 过滤级别: log/error/warn/info/debug
clear boolean false 获取后是否清除

13.2 开始收集日志

端点: GET /api/console/start

参数:

参数 类型 说明
duration number 收集时长(ms),0表示持续

13.3 停止收集日志

端点: GET /api/console/stop

13.4 清除控制台日志

端点: GET /api/console/clear

13.5 执行控制台命令

端点: GET /api/console/exec

参数:

参数 类型 必填 说明
code string 要执行的JavaScript代码

响应示例:

{
  "success": true,
  "result": "执行返回值",
  "consoleOutput": [
    {"level": "log", "message": "输出内容", "timestamp": 123456789}
  ],
  "error": null
}

十四、配置管理接口

14.1 获取配置

端点: GET /api/config

响应示例:

{
  "success": true,
  "config": {
    "clientId": "abc123...",
    "wsServerUrl": "wss://res.dtns.top",
    "autoReconnect": true
  },
  "status": {
    "connected": true,
    "browserDomain": "http://browser.abc123...html.dtns.top",
    "registered": true
  }
}

14.2 设置客户端ID

端点: GET /api/config/clientId

参数:

参数 类型 必填 说明
clientId string 新的客户端ID(20位)

14.3 生成新的客户端ID

端点: GET /api/config/clientId/generate

14.4 设置服务器地址

端点: GET /api/config/server

参数:

参数 类型 必填 说明
url string WebSocket服务器地址(ws://或wss://)

14.5 重置配置

端点: GET /api/config/reset

14.6 强制重连

端点: GET /api/config/reconnect


通用响应格式

成功响应

{
  "success": true,
  ...具体数据
}

错误响应

{
  "success": false,
  "error": "错误描述信息"
}

注意事项

  1. CORS支持: 所有接口均支持跨域请求,已配置CORS头
  2. 参数传递: 使用GET请求,参数通过URL查询字符串传递
  3. 特殊页面限制: 无法访问chrome://edge://等浏览器内部页面
  4. 调试器权限: 网络监控和控制台功能需要调试器权限
  5. 域名格式: 访问插件的域名格式为 http://browser.{clientId}.html.dtns.top
  6. 连接状态: 需要WebSocket保持连接才能使用API