0

我想要一些帮助:

  • 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

            });

        };
4

1 回答 1

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);
});
于 2013-03-12T20:00:31.027 回答