【问题标题】:How to get a DOM Window reference for a Google Chrome Extension?如何获取 Google Chrome 扩展的 DOM 窗口参考?
【发布时间】:2012-06-27 11:19:15
【问题描述】:

我正在将一个 firefox 扩展移植到使用 GWT 构建的 google chrome。

linker 中,我需要指定 $wnd$doc 变量。

firefox中的等价物如下:

var $wnd = Cc["@mozilla.org/appshell/appShellService;1"].getService(Ci.nsIAppShellService).hiddenDOMWindow;
var $doc = $wnd.document;    

here 解释的属性 hiddenDOMWindow 返回(单例)应用程序隐藏窗口,由该 AppShellService 自动创建和维护,并且是只读的。

【问题讨论】:

    标签: gwt google-chrome google-chrome-extension firefox-addon


    【解决方案1】:

    Chrome 扩展程序中的后台脚本始终在窗口(背景窗口)内运行。所以你可以从后台脚本访问你自己的窗口:

    var $wnd = window;
    var $doc = $wnd.document;
    

    【讨论】:

    • 这解决了后台页面的问题。但是(生成)内容脚本怎么样?如果我理解正确,他们共享网页的 DOM。我们如何获得这些的单例窗口?
    • @SaurabhAgarwal:内容脚本无法访问后台页面,因为它们在不同的进程中运行。您必须使用消息传递。
    【解决方案2】:

    chrome.extension API 中有getViews() 方法。您可以使用此方法获取窗口的文档。

    【讨论】:

      猜你喜欢
      • 2014-11-19
      • 2011-03-03
      • 1970-01-01
      • 2013-11-14
      • 2012-01-09
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      相关资源
      最近更新 更多