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

时间:2013-08-06 14:55:01

标签: javascript jquery firefox-addon

我正在使用以下代码:

   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错误

1 个答案:

答案 0 :(得分:3)

默认情况下,

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

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