Javascript 从后台渲染弹出窗口

Javascript 从后台渲染弹出窗口,javascript,angularjs,google-chrome-extension,Javascript,Angularjs,Google Chrome Extension,我开发了一个chrome扩展。这是一个聊天应用程序 我将整个应用程序开发为一个弹出窗口,后来我意识到弹出窗口在失去焦点时会完全破坏。 作为聊天应用程序,我希望弹出窗口留在后台以发送通知,但似乎没有办法将弹出窗口保留在后台(如果我错了,请更正) 我的应用程序主要是用angularJS编写的,带有服务器API 我正在考虑首先将我的应用程序呈现为背景页面,然后每当单击弹出窗口时,它都会从背景页面获取DOM 我的尝试: 我将所有弹出窗口的html转换为背景页面,并在弹出窗口的标记中尝试通过以下方式加载背

我开发了一个chrome扩展。这是一个聊天应用程序

我将整个应用程序开发为一个弹出窗口,后来我意识到弹出窗口在失去焦点时会完全破坏。 作为聊天应用程序,我希望弹出窗口留在后台以发送通知,但似乎没有办法将弹出窗口保留在后台(如果我错了,请更正)

我的应用程序主要是用angularJS编写的,带有服务器API

我正在考虑首先将我的应用程序呈现为背景页面,然后每当单击弹出窗口时,它都会从背景页面获取DOM

我的尝试:

我将所有弹出窗口的html转换为背景页面,并在弹出窗口的标记中尝试通过以下方式加载背景页面的标记:

document.documentElement.outerHTML=chrome.extension.getBackgroundPage().document.documentElement.outerHTML
但这不起作用,因为它只显示Angular渲染的标记

现在我在想,是否有什么方法可以使用iFrame来显示背景页面


请帮我完成这项工作。

尝试将iframe注入已检查的页面,源代码是您的
chrome-extension:///background.html
。检查过的页面可能不能很好地使用CORS。相对URL很好,因为来源相同(所以CORS不是问题):
您可以打开一个窗口并将其用作长期弹出窗口:
chrome.windows.create({type:'panel',URL:'someFileInYourExtension.html},winId=>{myPanelWinId=inId})。考虑到这些面板可以并且将进入后台,并且与任何特定的浏览器窗口都没有关联,因此它听起来更符合您的要求。@Makyen您的想法似乎不错,请告诉我,我不确定您希望看到什么样的精化。我的评论表明,如前所述,这个问题是一个问题。换句话说,它关注的是您当前正在考虑解决问题的方式(在后台页面中从HTML呈现),而不是询问解决更大问题的方法(如何向用户呈现UI)。正如我明确指出的那样,我所建议的方法实际上与这个问题没有多大关系。因此,我不确定什么样的阐述是合适的。