gpt4 book ai didi

javascript - 如何防止 browser_action 每次都重新加载弹出窗口?

转载 作者:行者123 更新时间:2023-12-01 03:00:02 25 4
gpt4 key购买 nike

我正在开发一个网络扩展,但遇到了以下问题。

我有 browser_action 显示带有一些内容的弹出窗口。问题是,加载需要 3-4 秒,并且用户每次打开此浏览器操作都必须等待。

我想以某种方式强制 browser_action 加载弹出窗口的 DOM 一次,因此当我再次打开此操作时,它会显示已经渲染的窗口。

我无法通过后台脚本预加载任何资源,因为该资源是 <iframe>远程网站的 DOM,您无法轻松地将渲染的 DOM 存储在 localStorage 中,以便稍后根据用户请求显示它。

我考虑过输入 <iframe>在后台脚本中并以某种方式在 browser_action 弹出窗口中显示它,但我无法找到如何做到这一点。

后台页面加载一次并在启用扩展时永远保留,所以也许我可以以某种方式在 browser_action 弹出窗口中显示它的内容?

最佳答案

不幸的是,我认为这是不可能的。最好的选择是在 iframe 加载时显示一些有用的 UI。

让弹出页面本身持久化当然是不可能的。

我 98% 确信您无法将加载的选项卡/框架交换到弹出窗口的页面中。 Chrome 有时会在内部执行此操作(预加载然后交换,请参阅 tabs.onReplaced),但您对此机制几乎没有控制权。

看来你可以用preload links触发它:

<link rel="preload" href="https://example.com/"
as="document" crossorigin="anonymous">

但是,将其嵌入到弹出页面中几乎没有什么作用(弹出页面加载时将获取它,这是毫秒的差异),并且我有理由确信从后台页面预加载它不会'尽管它们通常共享浏览器进程,但不会延续到弹出窗口。不过你可以尝试一下!

关于javascript - 如何防止 browser_action 每次都重新加载弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46491219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com