chrome.browserAction.setPopup() - 仅限本地html文件?

时间:2012-02-09 19:46:51

标签: google-chrome-extension

我想动态修改我的扩展程序的弹出窗口(在运行时)。并且想要指定从我的服务器加载的自定义弹出HTML文件。

在Firefox中,我可以使用XUL overlays轻松完成此操作,我可以在运行时指定它。 document.loadOverlay()允许我为叠加层指定“远程”网址

Chrome中可以使用相同的功能吗?

我一直在玩chrome.browserAction.setPopup( details ) API,但似乎details.popup 参数必须指定本地文件,而不是远程网址

1 个答案:

答案 0 :(得分:2)

我已在Chromium-Extensions邮件列表上回答了同样的问题。

没有用于加载外部弹出窗口的API,但您可以使用纯JavaScript执行此操作。你能做什么(我过去做过):

  • 在弹出窗口中使用iframe +扩展消息。 iframe 指向未在扩展程序中托管的某个外部网址。
  • 使用模板(jQuery模板示例),将这些模板文件加载到 您的背景页面,只需使用它们来构建弹出窗口。
  • 使用XHR下载html内容并在弹出窗口中加载它们 通过构建DOM。

我通常使用模板方法,但是当我想管理服务器端的整个弹出窗口时,我使用popup iframe方法,所以我不必将更新推送到扩展库。我不喜欢下载HTML内容,模板似乎更安全。

希望这有帮助!