我已经尝试了一段时间,但无法使其正常工作。基本上,启用扩展时,我想要一个持久页面(无论是否单击浏览器操作图标,它都会保持套接字连接)。
后台页面以这种方式运行。现在,我希望这个背景页面显示在弹出页面中(通过 iframe 或任何替代方法,这样它就不是背景页面的另一个实例。
当我尝试时,我得到这样的信息:“chrome-extension://invalid/ 的网页可能暂时关闭,或者它可能已永久移动到新的网址。”
关于我可以尝试的方向的任何想法?
我已经尝试了一段时间,但无法使其正常工作。基本上,启用扩展时,我想要一个持久页面(无论是否单击浏览器操作图标,它都会保持套接字连接)。
后台页面以这种方式运行。现在,我希望这个背景页面显示在弹出页面中(通过 iframe 或任何替代方法,这样它就不是背景页面的另一个实例。
当我尝试时,我得到这样的信息:“chrome-extension://invalid/ 的网页可能暂时关闭,或者它可能已永久移动到新的网址。”
关于我可以尝试的方向的任何想法?
真正的后台页面是隐藏的,无法显示(开发者模式下点击background.html
链接可以打开后台页面的开发工具chrome://extensions/
)。
在弹出窗口中,您可以使用chrome.extension.getBackgroundPage()
. 这可用于维护扩展弹出窗口的(会话)持久状态。
当您尝试在框架/选项卡中加载背景页面时,会显示该页面的新实例。但是,这不是背景页面。它在您的扩展程序中被视为普通的 HTML 文件。
如果您想要背景页面的网址,我建议您使用chrome.extension.getURL('background.html')
但是我不推荐这种方法用于您正在做的事情,尽管我认为它会起作用。我会建议使用一些简单的消息传递。有了这个,您的弹出/浏览器操作实际上将保存您的 UI 的 html,并向后台页面发送一条消息,要求从后台页面获取实时 Web 套接字内容。
这些是有关消息传递的文档:http ://code.google.com/chrome/extensions/messaging.html
玩得开心,祝你好运!一点也不差,如果你有问题,请告诉我