chrome扩展弹出窗口和背景ajax

时间:2011-03-15 02:31:26

标签: google-chrome google-chrome-extension

我有一个要求,即background.html每10分钟继续更新一次,当我点击弹出窗口时,它应该触发后台立即更新并在弹出窗口中显示结果。

我使用ajax工作进行后台更新,我使用弹出触发器后台使用ajax进行立即更新。但是,我仍然坚持如何在弹出窗口中显示最新结果...如何判断后台ajax调用何时完成并在弹出窗口中显示最新结果?

感谢

1 个答案:

答案 0 :(得分:13)

好吧,如果你想在背景页面上听取更改,你有两种方法可以做你想做的事。

  1. 在弹出式窗口中,您可以在弹出窗口页面中注册chrome.extension.onRequest.addListener,在后台页面中注册更新内容时可以chrome.extension.sendRequest
  2. 您可以直接访问Popup DOM,您可以从chrome.extension.getViews({type:'popup'})获取实例,一旦获得该实例,您就可以在该DOM中调用方法。在弹出窗口中,您也可以使用chrome.extension.getBackgroundPage()轻松访问后台页面。对于这两种情况,都会返回一个DOMWindow。
  3. 我个人会使用#2,因为你属于同一个扩展程序,你不需要与注入的内容脚本进行通信。

    var popups = chrome.extension.getViews({type: "popup"});
    if (popups.length != 0) {
      var popup = popups[0];
      popup.doSomething();
    }
    

    希望这有帮助。