【发布时间】:2021-09-15 19:08:56
【问题描述】:
我正在编写一个 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:// 开头)。
【问题讨论】:
标签: javascript url tabs browser-extension browser-addons