FireFox扩展:如何通过jQuery访问页面元素?

我使用以下代码:

var myExtension = { init: function() { // The event can be DOMContentLoaded, pageshow, pagehide, load or unload. if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false); }, onPageLoad: function(aEvent) { var doc = aEvent.originalTarget; // doc is document that triggered the event var win = doc.defaultView; // win is the window for the doc //alert("page is loaded \n" +doc.location.href); // alert(doc.location.href.indexOf("facebook.com")); if(doc.location.href.indexOf("facebook.com") == -1) { return; } alert("we are here"); alert($("#blueBar").html()); } } window.addEventListener("load", function load(event){ window.removeEventListener("load", load, false); //remove listener, no longer needed myExtension.init(); },false); 

它不断给出undefined错误

$()默认使用当前窗口的文档。 在你的情况下,这实际上是browser.xul。 您需要对已经通过var doc = aEvent.originalTarget;获得的子文档进行操作var doc = aEvent.originalTarget; ,所以这应该工作我认为(未经测试)

 $(doc).find("#blueBar")