如何在 Quasar 浏览器插件中为跨浏览器重新启动而持续存在的选项卡创建唯一标识符?

问题描述

我正在编写一个 Quasar BEX 浏览器插件,并在 chrome.storage.local(和 Vuex;我想在未来使用本地数据库进行数据存储 if possible)中有一些数据应该绑定到特定的选项卡,并且即使在重新启动浏览器后仍保持链接。即使在浏览器重新启动后,特定选项卡也应显示特定数据(就像恢复浏览器会话时正常选项卡所做的一样)。

要将特定数据与特定选项卡相关联,我需要该选项卡的唯一标识符,该标识符可以在浏览器重新启动时保留或可以保留。


每次浏览器重新启动后都会重置 tabId,并且 sessions.setTabValue() 也仅使用 tabId。

This 在这里不起作用,因为索引也不是唯一的/浏览器重新启动后重置,并且所有 BEX 选项卡的选项卡“指纹”(和 url)通常应该相同。

我对如何解决这个问题的唯一想法是通过在散列后附加 UID(如 url#some-id)来更改 URL。但是,通过设置 document.location.href 或 window.location 或 window.location.hash(在 Quasar BEX 的后台挂钩方法中)来更改 URL 不起作用 - 它在 URL 地址栏中保留了普通的扩展 url并且只更改这些变量(因此,如果我关闭浏览器,则 URL 不变)。 window.history.pushState({},null,newUrl); 也没有更改地址栏中的 URL。编辑:也许 URL 已更改并在重新启动后仍然存在,但未显示在扩展 URL 的地址栏中?

URL 是扩展 URL(以 moz-extension:// 开头)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)