【问题标题】:Keep a chrome extension popup after close it关闭后保留一个chrome扩展弹出窗口
【发布时间】:2014-07-17 15:15:17
【问题描述】:

我正在开发一个 Chrome 扩展程序,以便轻松访问一些文档,基本上它是一个弹出窗口中的网站。

它工作正常,但是当我关闭弹出窗口并再次打开它时,它会重新启动弹出窗口,我想在关闭它之前保持用户所在的位置。

有什么想法吗?

------------ 截图 --------

所以.. 我想做的是当用户再次打开弹出窗口时,向他展示他正在观看的视图。

【问题讨论】:

  • 您必须将扩展弹出窗口视为网站,也就是说 - 关闭弹出窗口然后重新打开它相当于点击重新加载。因此,也就是说,在导航时,您需要使用 localStorage 存储弹出窗口的状态。然后在加载页面(弹出)时,检索存储在 localStorage 中的状态信息并恢复它。
  • 我不知道chrome存储是如何工作的,所以..今晚我会看看如何存储网站的状态并通过javascript设置它。谢谢
  • 不客气。它真的很容易使用。只需 google localStorage - 它适用于所有现代浏览器,因此无需搜索任何以 Chrome 为中心的内容。 :)
  • 您也可以使用adoptNode 将弹出窗口在关闭时移至背景页面,并在打开时移回弹出窗口。但我不确定iframe 是否完全支持adoptNode

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

setPopup 是您需要识别的基本代码部分。

 if(localStorage.Page && localStorage.Page != document.URL){
   //STORE CURRENT PAGE
    localStorage.Page = document.URL;
    //TRIM STRING
    var string = "chrome-extension://"+window.location.host+"/";
    String.prototype.ltrim = function() {
      return this.replace(string,"");
    }
    //SETPOPUP  OVERWRITES MANIFEST DATA
    chrome.browserAction.setPopup({
      tabId: null,          // Set the new popup for this tab.
      popup: localStorage.Page.ltrim()   // Open this html file within the popup.
    });

}else{
  localStorage.Page = document.URL;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多