私はあなたがパネルを閉じたいときに呼び出されるリスナを登録するコンテンツスクリプトを作成する必要があります怖いです。コンテンツスクリプトはself.port.emit('your-event-name')
経由アドオンと通信しなければならない、とアドオンコードは、パネルを閉じpanel.port.on('your-event-name')
を経由して通知をリッスンする必要があります
var kipptPanel = require("panel").Panel({
width:400,
height:245,
// The contentURL should do this to close the panel:
// <button id="close-button">self.port.emit('close', null)</button>
contentURL : "http://localhost:8000/test-panel.html",
contentScript: "document.getElementById('close-button').addEventListener('click', function() {" +
" console.log('zz');self.port.emit('close', null);" +
"});"
});
kipptPanel.port.on("close", function (text) {
console.log(text);
kipptPanel.destroy();
});
kipptPanel.show();
はここmodified version of your code in the add-on builderです。
これは、SDK's panel documentationに記載されています。
私はそれが複雑すぎることを認識しています。window.close()
を閉じると考えた場合は、jetpackグループに問い合わせてください。
タブが閉じたときにパネルを閉じても、一般的な機能としては意味がありません。パネルはブラウザのクロムの一部であり、タブには添付されません。 – canuckistani
@canuckistani:質問でその文を解析した方法は、パネルで開いたドキュメントで 'window.close()'を呼び出すと、パネルが閉じます(Chromeで)。それは私には意味がある。 – Nickolay
すごい、これは私が探していたものでした。本当にありがとう! – jorilallo