主题
关键词回评功能 - 后台管理集成
功能说明
当用户点击"关键词回评"按钮后,会弹出关键词回评设置弹层。在弹层中点击"去后台管理回评组"链接,将自动跳转到 options 页面并打开回评组编辑弹窗。
实现方案
1. 前端交互流程
text
用户点击"关键词回评"
↓
弹出关键词回评设置弹层 (KeywordReplyModal)
↓
点击"去后台管理回评组"链接
↓
打开 Chrome Options 页面 (OptionsAppNew)
↓
自动弹出"新建发评组"编辑弹窗 (EditGroupModal)1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2. 代码修改说明
2.1 KeywordReplyModal.vue
修改了 manageGroups 方法,实现:
- 使用
chrome.runtime.openOptionsPage()打开 options 页面 - 通过
chrome.runtime.sendMessage()发送消息,通知 options 页面自动打开编辑弹窗
javascript
const manageGroups = () => {
if (typeof chrome !== 'undefined' && chrome.runtime && chrome.runtime.openOptionsPage) {
// 打开 options 页面
chrome.runtime.openOptionsPage(() => {
// 延迟发送消息,确保页面已加载
setTimeout(() => {
chrome.runtime.sendMessage({
action: 'openReplyGroupEditor',
autoOpen: true
});
}, 500);
});
}
};1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
2.2 OptionsAppNew.vue
新增消息监听和 URL 参数处理:
功能增强:
- 监听来自 content script 的消息
- 支持通过 URL 参数打开编辑弹窗
- 支持自动打开新建回评组弹窗或编辑特定回评组
实现代码:
javascript
// 监听消息
const handleMessage = (message) => {
if (message.action === 'openReplyGroupEditor') {
if (message.autoOpen) {
addNewGroup(); // 打开新建弹窗
} else if (message.groupId) {
editGroup(message.groupId); // 编辑指定回评组
}
}
};
onMounted(() => {
// 注册消息监听
chrome.runtime.onMessage.addListener(handleMessage);
// 支持 URL 参数
const urlParams = new URLSearchParams(window.location.search);
const autoOpen = urlParams.get('autoOpen');
const groupId = urlParams.get('groupId');
if (autoOpen === 'true') {
addNewGroup();
} else if (groupId) {
editGroup(groupId);
}
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
3. 使用方式
方式一:通过消息(推荐)
javascript
chrome.runtime.sendMessage({
action: 'openReplyGroupEditor',
autoOpen: true // 打开新建弹窗
});
// 或编辑特定回评组
chrome.runtime.sendMessage({
action: 'openReplyGroupEditor',
groupId: 'group1' // 编辑 ID 为 group1 的回评组
});1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
方式二:通过 URL 参数
text
chrome-extension://[extension-id]/options.html?autoOpen=true
chrome-extension://[extension-id]/options.html?groupId=group11
2
2
4. 扩展性
这个设计支持以下扩展:
- 编辑特定回评组:传递
groupId参数 - 自定义打开行为:通过不同的 action 类型实现更多功能
- URL 深度链接:支持直接通过 URL 参数访问特定功能
5. 注意事项
- 消息延迟:使用 500ms 延迟确保 options 页面已完全加载
- 消息监听清理:在
onUnmounted中移除监听器,避免内存泄漏 - 兼容性检查:使用
typeof chrome !== 'undefined'确保在非扩展环境下不报错
测试步骤
- 打开小红书直播间
- 点击"关键词回评"按钮
- 在弹出的设置窗口中点击"去后台管理回评组"
- 验证是否自动跳转到 options 页面并打开编辑弹窗
相关文件
/src/content/ui/components/KeywordReplyModal.vue- 关键词回评设置弹层/src/options/OptionsAppNew.vue- Options 主页面/src/options/components/EditGroupModal.vue- 编辑回评组弹窗
