2012-02-09 46 views
1

我想動態修改我的擴展的彈出窗口(在運行時)。並且想要指定從我的服務器加載的自定義彈出式HTML文件。chrome.browserAction.setPopup() - 僅限本地html文件?

在Firefox中,我可以通過XUL overlays輕鬆實現,我可以在運行時指定它。 而document.loadOverlay()確實允許我爲覆蓋指定「遠程」URL。

在Chrome中可能是一樣的嗎?

我一直在玩chrome.browserAction.setPopup(details) API,但似乎details.popupPARAM必須指定一個本地文件,而不是一個遠程URL

回答

2

我已經在Chromium-Extensions郵件列表上回答了完全相同的問題。

沒有API來加載外部彈出窗口,但你可以用普通的JavaScript來做到這一點。你可以做些什麼(我過去曾這樣做過):

  • 在彈出窗口中使用iframe +擴展消息。 iframe 指向一些未在擴展中託管的外部URL。
  • 使用模板(jQuery模板示例),將這些模板文件加載到 您的背景頁面,並使用它們來構建彈出窗口。
  • 使用XHR下載html內容並通過構建DOM在彈出的 中加載它們。

我通常使用模板方法,但當我想管理服務器端的整個彈出窗口時,我使用彈出式iframe方法,因此我不必將更新推送到擴展庫。我不喜歡下載HTML內容,模板似乎更安全。

希望這有助於!

+0

你可以添加一個鏈接到郵件列表存檔與提到的職位? – 2014-08-21 10:13:34

+1

@Tobo,我更新了帖子,並將鏈接添加到提到的文章中。 – 2014-12-17 22:38:49