【问题标题】:How to create unique identifiers for tabs that persist across browser restarts in a Quasar browser addon?如何在 Quasar 浏览器插件中为浏览器重启后持续存在的选项卡创建唯一标识符?
【发布时间】: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


    【解决方案1】:

    我是编写浏览器扩展的新手,所以这可能不是最好的答案。

    浏览器重启时标签ID可能不同,但标签索引应该相同。如果您同时跟踪选项卡 ID 和选项卡索引并在选项卡更改位置时在存储中更新两者,那么我认为您将在重新启动后获得信息。

    重新启动时,同一组选项卡会在相同位置重新打开。如果您查看具有正确索引的选项卡,然后获取它的 ID,您将能够与它进行交互。您将能够在启动时通过选项卡索引关联存储,然后更新存储中的选项卡 ID。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 2015-10-19
      • 1970-01-01
      • 2016-09-10
      相关资源
      最近更新 更多