Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI元素定位助手 Chrome插件

一款帮助开发者与AI更精准沟通的Chrome插件。通过在页面上框选元素,自动提取元素信息并生成结构化Markdown,让你能够准确地向AI描述需要修改的页面元素。

✨ 功能特点

  • 🎯 可视化框选 - 在页面上直接点击选择元素,直观易用
  • 📋 信息提取 - 自动提取元素的CSS选择器、类名、文本内容等信息
  • 📝 实时反馈编辑 - 选择元素后直接在页面上输入反馈,支持回车快速保存
  • 🗑️ 便捷删除 - 每个元素标记旁都有删除按钮,方便移除不需要的元素
  • 📄 Markdown生成 - 一键生成结构化Markdown,直接复制给AI使用
  • 📊 列表查看 - 在覆盖层中查看所有已选择元素的详细信息
  • 💾 数据持久化 - 选择的数据会自动保存,刷新页面不丢失

📦 安装方法

开发模式安装

  1. 打开Chrome扩展管理页面

    • 在地址栏输入 chrome://extensions/
    • 或者:菜单 → 更多工具 → 扩展程序
  2. 开启开发者模式

    • 点击页面右上角的"开发者模式"开关
  3. 加载扩展

    • 点击"加载已解压的扩展程序"按钮
    • 选择本项目的文件夹(ai_mark
  4. 完成安装

    • 插件会出现在扩展列表中
    • 浏览器工具栏会显示插件图标

🚀 使用指南

基本使用流程

1. 启动框选模式

  • 点击浏览器工具栏中的插件图标
  • 在弹出的窗口中点击"开始框选"按钮
  • 页面会进入框选模式,鼠标变为十字光标
  • 右上角会显示提示:"点击选择元素 | ESC退出 | 已选择: 0"

2. 选择页面元素

  • 选择元素:将鼠标悬停在元素上,元素会被蓝色高亮显示,点击即可选中
  • 元素标记:选中的元素会显示数字标记(1, 2, 3...)和删除按钮(×)
  • 取消选择
    • 再次点击已选中的元素可以取消选择
    • 或点击元素标记旁的红色删除按钮(×)

3. 输入反馈信息

  • 自动弹出输入框:选择元素后,会在元素下方自动弹出反馈输入框
  • 输入反馈
    • 在输入框中描述该元素的问题或需要修改的内容
    • Enter 键快速保存(Shift+Enter 换行)
    • 或点击"保存"按钮保存
  • 关闭输入框
    • 点击输入框右上角的"×"按钮
    • 或点击输入框外部区域

4. 查看已选择列表

  • 点击右上角的"📝 已选择列表"按钮
  • 会在页面中央弹出列表面板,显示所有已选择元素的详细信息
  • 包括:CSS选择器、类名、文本内容、反馈信息等
  • 点击右上角的"×"或点击外部区域关闭列表

5. 生成并复制Markdown

有两种方式可以生成Markdown:

方式一:使用右上角的生成按钮

  • 当至少选择1个元素后,右上角会显示"📋 生成反馈意见并复制"按钮
  • 点击按钮后,Markdown会自动复制到剪贴板
  • 复制成功后会自动清空列表并退出框选模式

方式二:使用列表面板的复制按钮

  • 打开列表面板后,点击面板头部的"📋 复制"按钮
  • Markdown会自动复制到剪贴板
  • 复制成功后会自动清空列表并退出框选模式

6. 退出框选模式

  • 方式一:按 ESC 键(会自动清空所有选择)
  • 方式二:点击插件弹窗中的"停止框选"按钮
  • 方式三:点击生成按钮后自动退出

快捷键说明

  • ESC - 退出框选模式并清空所有选择
  • Enter - 在反馈输入框中快速保存(不换行)
  • Shift + Enter - 在反馈输入框中换行

界面元素说明

覆盖层元素(不会干扰页面选择)

  • 提示框(右上角):显示当前状态和已选择元素数量
  • 已选择列表按钮(右上角):打开列表面板
  • 生成反馈按钮(右上角):生成并复制Markdown

页面元素

  • 数字标记:显示在选中元素的上方,表示元素序号
  • 删除按钮:数字标记旁的红色"×"按钮,用于删除该元素
  • 反馈输入框:选择元素后弹出的输入框,用于输入反馈信息

📄 生成的Markdown格式

插件会生成结构化的Markdown文档,格式如下:

# 页面反馈报告

## 页面信息

- **页面路径:** `/`
- **完整URL:** https://example.com/
- **视口尺寸:** 1728×997
- **反馈时间:** 2026/1/26 14:30:00

---

## 需要修改的元素

共选择了 **2** 个元素,具体信息如下:

### 元素 1: BUTTON "Primary Button"

**CSS选择器:**
```css
.demo-section > .demo-elements > .button-group > .demo-button

CSS类名:

.demo-button

反馈/需要修改的内容:

按钮颜色需要改为蓝色


元素 2: H3 "Example Card"

CSS选择器:

.demo-section > .demo-elements > .demo-card > h3

反馈/需要修改的内容:

标题文字太小,需要增大字体


操作说明

请根据上述信息,对页面中的指定元素进行修改。每个元素都提供了:

  1. CSS选择器 - 用于精确定位元素
  2. 反馈内容 - 用户对该元素的具体修改需求

请按照反馈内容对相应元素进行修改。


## 📋 提取的元素信息

插件会自动提取以下信息:

- **标签名** (tagName) - HTML元素标签(如 button, div, h3)
- **CSS选择器** (selector) - 元素的完整CSS选择器路径,用于精确定位
- **CSS类名** (classes) - 元素的CSS类名(如果有)
- **文本内容** (textContent) - 元素的文本内容(前100字符)
- **反馈信息** (feedback) - 用户输入的修改需求或问题描述

## 🎯 使用场景

### 场景1:与AI对话修改页面

1. 打开需要修改的网页
2. 使用插件框选需要修改的元素
3. 为每个元素输入修改需求
4. 生成Markdown并复制
5. 粘贴给AI(如ChatGPT、Claude等)
6. AI根据CSS选择器和反馈内容进行修改

### 场景2:记录页面问题

1. 发现页面问题
2. 框选问题元素
3. 输入问题描述
4. 生成报告保存或发送给开发团队

### 场景3:批量反馈

1. 一次性选择多个需要修改的元素
2. 逐个输入反馈
3. 生成完整的反馈报告
4. 一次性提交所有修改需求

## ⚙️ 技术细节

### 项目结构

ai_work/ ├── manifest.json # 插件配置文件(Manifest V3) ├── background.js # Service Worker后台脚本 ├── content.js # 内容脚本(页面交互逻辑) ├── content.css # 内容脚本样式 ├── popup.html # 弹窗HTML ├── popup.js # 弹窗逻辑 ├── popup.css # 弹窗样式 ├── icons/ # 图标文件夹 │ ├── icon16.png │ ├── icon48.png │ └── icon128.png ├── generate-icons.html # 图标生成工具 └── README.md # 说明文档


### 技术栈

- **Chrome Extension Manifest V3** - 最新版本的Chrome扩展API
- **Vanilla JavaScript** - 无框架依赖,纯原生JS
- **Chrome Storage API** - 数据持久化存储
- **Chrome Tabs API** - 标签页交互
- **Chrome Scripting API** - 动态脚本注入

### 权限说明

插件需要以下权限:

- `activeTab` - 访问当前活动标签页
- `storage` - 保存选择的数据
- `scripting` - 动态注入脚本
- `windows` - 创建新窗口(用于列表面板)

## ⚠️ 注意事项

1. **页面兼容性**
   - 某些特殊页面(如 `chrome://` 页面)不支持框选功能
   - 动态加载的内容可能需要等待加载完成后再选择

2. **数据保存**
   - 选择的数据会保存在浏览器本地存储中
   - 刷新页面后数据会恢复(如果URL相同)
   - 清空浏览器数据会清除保存的选择

3. **性能考虑**
   - 选择大量元素时可能影响页面性能
   - 建议每次选择不超过20个元素

4. **浏览器支持**
   - 支持 Chrome 88+ 版本
   - 支持基于Chromium的浏览器(Edge、Brave等)

## 🔧 常见问题

### Q: 为什么点击元素没有反应?

A: 请确保:
- 已点击"开始框选"按钮
- 页面不是特殊页面(如chrome://页面)
- 元素没有被其他元素遮挡

### Q: 生成的Markdown格式不对?

A: 确保:
- 已为每个元素输入了反馈信息
- 浏览器支持复制到剪贴板功能
- 检查控制台是否有错误信息

### Q: 刷新页面后选择丢失了?

A: 这是正常行为。如果需要在刷新后保留选择,可以:
- 在退出框选模式前不要刷新页面
- 或者使用列表面板查看已保存的选择

### Q: 如何清除所有选择?

A: 有以下方式:
- 按ESC键(会清空并退出)
- 点击生成按钮后自动清空
- 点击列表面板的复制按钮后自动清空

## 📝 更新日志

### v1.0.0 (2026-01-26)

- ✨ 初始版本发布
- 🎯 实现可视化框选功能
- 📝 支持实时反馈编辑
- 📄 生成结构化Markdown
- 🗑️ 支持删除单个元素
- 📊 列表面板查看功能
- 💾 数据持久化存储

## 📄 许可证

MIT License

## 🤝 贡献

欢迎提交Issue和Pull Request!

## 📮 反馈

如有问题或建议,请通过GitHub Issues反馈。

About

在页面上框选元素,提取元素信息并生成结构化Markdown,方便与AI沟通的chrome插件

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages