如题,比如
以此类推,各个侧边栏跟页面绑定,相互独立,不会相互干扰
其实就是类似 kimi 插件那种效果
默认情况下,一旦打开侧边栏,这个侧边栏在所有页面共享,即在 A 页面打开,B 页面也是打开的状态,A 页面和 B 页面看到的侧边栏内容一样
目前的方案是,通过监听当前页的 tab 是否有变化,来解决 AB 页面看到一样内容的问题,但是每次切换页面又都会重新刷新一下
然后每次打开侧边栏,记录页面 tab 的侧边栏是否是打开的,再在 background 里,监听页面 tab 是否有切换,来判断要不要先关闭侧边栏,再允许打开,就很挫,下面是伪代码
这种方案有时会在切换页面时闪一下,甚至会导致侧边栏无法打开,得先切换一下页面才可以
chrome.tabs.onActivated.addListener(activeInfo => {
const tabId = activeInfo.tabId
chrome.tabs.get(activeInfo.tabId, tab => {
// 省略 isOpen 获取,根据 tabId 在 storage 里查出当前 tab 是否手动打开了侧边栏
if (isOpen === "true") {
// 已打开就保持打开
chrome.sidePanel.setOptions({
tabId,
path: 'sidepanel.html',
enabled: true
});
} else {
// 未手动打开的,先关闭,再设置允许打开
chrome.sidePanel.setOptions({
enabled: false
});
chrome.sidePanel.setOptions({
tabId,
path: 'sidepanel.html',
enabled: true
});
}
})
})
是用 plasmo + react 开发的(前端半吊子是半吊子水平,之前一直写后端),翻遍了 chrome extension 的 API 文档 + 问 chatgpt 也没得到有效的解决方案
实在没什么方向了,想看看有没有大佬能指点一下,或者有没有类似效果的开源仓库可以参考一下
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.