2015-09-04 43 views
1

我试图(和失败),以插入元素访问的每个页面。我只能将元素插入的初始页面(加载项后显示的页面已经被安装)。下面的代码片段演示了这种行为。访问从Android版Firefox的DOM附加

我曾尝试将其插入内onOpenWindow()H1元素的逻辑,虽然这似乎没有任何区别。

注:下面的代码是除了template boilerplate code

const { classes: Cc, interfaces: Ci, utils: Cu } = Components; 

Cu.import('resource://gre/modules/Services.jsm'); 

function loadIntoWindow(window) { 
    if (!window) 
    return; 

    window.NativeWindow.toast.show("Inserting script", "short"); 

    var contentWindow = window.BrowserApp.selectedBrowser.contentWindow; 
    var document = contentWindow.document; 
    document.body.innerHTML = "<h1>THIS TEXT WAS INSERTED</h1>"; 
} 

回答

1
var DOMWindows = Services.wm.getEnumerator('navigator:browser'); 
    while (DOMWindows.hasMoreElements()) { 
     var aDOMWindow = DOMWindows.getNext(); 
     var allTabs = aDOMWindow.BrowserApp._tabs; 
     for (var i=0; i<allTabs.length; i++) { 
      var aContentWindow = allTabs[i].window; 
     } 
    }