1

Erik Vold のツールバー ボタンを使用しています。パネルを固定しています。パネルにレンダリングされた html 静的ページでリンクの 1 つをクリックすると、同じパネルに別のものを表示する必要があります。

アドオン コードと html 静的ページの間のメッセージ パッシングにポート API を使用しようとしています。特定のイベントを聞いて、パネルの contentURL フィールドを変更したい:

var myScript = "window.addEventListener('click', function(event) {" +
           "  var t = event.target;" +
           "  if (t.nodeName == 'A')" +
           "    self.port.emit('click-link', t.id);" +
           "}, false);"

var mainPanel = require("panel").Panel({
  width: 200,
  height: 200,
  contentURL: require("self").data.url("appList.html"),
  contentScript: myScript
});

mainPanel.port.on("click-link", function(appName) {
  if(appName=='app1'){
  //mainPanel.resize(700,500);  --works
    mainPanel.contentURL="http://www.some-server/app1.html";  --fails
  }
  if(appName=='app2')
    ...
});

mainPanel.resize() は、パネルのサイズ変更にうまく機能します。パネルの contentURL を変更する同様の方法はありますか?

4

1 に答える 1

0

そのコードは機能するはずです。パネル モジュールにバグが見つかりました。わーい!

私はあなたのためにバグ 795490を提出しました。着陸するまでに少し時間がかかるかもしれない修正を含むプル リクエストがありますが、修正が来るはずです。

于 2012-10-01T17:28:08.843 に答える