0

私はこれについていくつかの支援をお願いします:

  • Firefox 拡張機能はパネルを開き、外部 Web サイトからコンテンツをロードします
  • パネルのコンテンツ内の変更を聞くにはどうすればよいですか? ダイナミックで常に更新されています
  • 変更が発生すると、ブラウザ内で通知を発生させます (「お知らせがあります!」など)。

ここに少しのコードがあります(申し訳ありませんが、私はまったく初心者です):

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

ページ ( http://mysite.com/news.html )にいくつかの contentScript を挿入し、そのスクリプトを介して変更を監視する必要があります。必要な変更が表示されたら、パネルにメッセージを送信して、その変更をアドオンに通知します。

ドキュメントの例に注釈を付けます。

// 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 に答える