首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止browser_action每次重新加载其弹出窗口?

如何防止browser_action每次重新加载其弹出窗口?
EN

Stack Overflow用户
提问于 2017-09-29 14:39:07
回答 1查看 289关注 0票数 0

我正在开发一个网络扩展,我被困在下面的问题上。

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

我希望强制browser_action加载弹出窗口的DOM,只需加载一次,所以当我再次打开此操作时,它将显示已经呈现的窗口。

我不能通过后台脚本预加载任何资产,因为该资产是远程网站的<iframe>,您不能轻松地将呈现的DOM存储在localStorage中,以便稍后在用户请求时显示。

我想把<iframe>放在后台脚本中,并以某种方式在browser_action弹出窗口中显示它,但是我没有找到如何做到这一点。

背景页只加载一次,并且在启用扩展时永远保持不变,所以也许我可以在browser_action弹出窗口中显示它的内容?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 14:49:02

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

当然,不可能使弹出页面本身具有持久性。

我是98%的肯定,你不能在一个加载的选项卡/帧交换到弹出窗口的页面。Chrome有时在内部执行它(预加载,然后交换,参见tabs.onReplaced),但是您对这种机制几乎没有控制。

似乎你可以用 links来触发它

代码语言:javascript
复制
<link rel="preload" href="https://example.com/"
      as="document" crossorigin="anonymous">

但是,将其嵌入弹出式页面并没有什么用处(弹出加载时将获取它,这是毫秒的差异),而且我相当肯定的是,我可以相当肯定地说,预装它的背景页不会延续到弹出页面,尽管它们通常共享浏览器进程。不过,你可以做实验!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46491219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档