2013-03-07 99 views
0

我想這個一些幫助:從外部網站 Firefox擴展:甚至監聽器在面板內部的變化

  • 內容

    • Firefox擴展打開面板,負載如何聽裏面的面板的變化內容?它是動態的,不斷更新的
    • 當變化發生,火瀏覽器內置的通知(喜歡的東西「有一些新聞!」)

    下面是一些代碼(抱歉,但我挺小白):

    var Widget = require("widget").Widget; 
    
    var tabs = require('tabs'); 
    
    exports.main = function() { 
    
         data = require("self").data 
    
         var Panel = require("panel").Panel({ 
           width:1000, 
           height:630, 
           contentURL: "http://mysite.com/news.html", 
         }); 
    
         require("widget").Widget({ 
           id: "News", 
           label: "News", 
           contentURL: "http://mysite.com/images/favicon.ico", 
           panel: Panel 
    
          }); 
    
         }; 
    
  • +2

    爲什麼不能有一個思考,問一個具體問題? – 2013-03-07 04:05:00

    +0

    對不起!我剛編輯我的問題 – Etruscos 2013-03-07 09:54:34

    回答

    1

    你會想一些contentScript注入頁面(http://mysite.com/news.html)和監視通過該腳本的變化。當您看到要更改的內容時,只需將消息發送到面板即可通知該更改的附加組件。

    我會從註釋的文檔的例子,

    // this could be listening to any event happening in the page 
    var myScript = "window.addEventListener('click', function(event) {" + 
           " var t = event.target;" + 
           " if (t.nodeName == 'A')" + 
            // this self.port.emit is what sends the 'click-link' signal 
            // to your add-on code 
           " self.port.emit('click-link', t.toString());" + 
           "}, false);" 
    
    var panel = require("sdk/panel").Panel({ 
        contentURL: "http://mysite.com/news.html", 
        // !!! use contentScriptFile, this is just for small inline stuff 
        contentScript: myScript 
    }); 
    
    // this is how your add-on listens for the 'click-link' signal, but it could be any signal name you want 
    panel.port.on("click-link", function(url) { 
        // here is where you fire the "There are some news!" event in the browser 
        console.log(url); 
    }); 
    
    +0

    非常感謝!我會給你代表,但我不能投票我在這個社區太綠色:) – Etruscos 2013-05-29 09:16:39