私はこのような構造を持っている:私はindex.js
にpanel1
とpanel2
を定義しfirefoxアドオンでパネルからパネルを焼くには?
Addon Directory
index.js
Data Directory
-panel1.html
-panel1.js
-panel2.html
-panel2.js
を。私はpanel1
をツールバーボタンに添付しました。 panel1.html
には、panel2.html
を開くリンクが含まれています。
問題がある: 私はpanel1.js
内panel2.show()
を呼び出すときに、私はこのエラーを取得:panel2.show is not a function
これはコードです:
var geLink= document.getElementById("mylink");
getLink.addEventListener('click', function (event)
{
console.log("link clicked");
panel2.show();
},false);
パネル1からpanel2発射する方法は?これは可能ですか?
私はshowメソッドをメインアドオンスクリプトの外から呼び出せないことを理解します。だから、panel1
のリンクをクリックするとpanel2.html
とそのコンテンツスクリプトを表示する正しい方法は何ですか? window.open()
を使用していますか? この場合、panel2.html
ウィンドウを開くまでpanel2
スクリプトが実行されないようにするにはどうすればよいですか?私が試したときに、panel2
スクリプトが実行されてからpanel1のリンクをクリックしてからpanel2.html
ページが開く前に実行されるからです。
[編集]あなたの質問がためにしてください上のトピック:含まパネルで
、クリックリンクに耳を傾け、その後、HTMLページを開きます問題を再現する[mcve]。 (1)望ましい動作、(2)特定の問題またはエラー、および(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。 – Makyen
基本的には、メインスクリプトにメッセージを渡してpanel2を開く必要があります。そうする方法はたくさんあります。ただし、** [sdk/panel](https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/panel)は**でしか開かないことがあります。 (あなたのアドオンだけでなく、そのFirefoxプロファイルに*すべての*アドオンSDKベースのアドオンがインストールされているからです)。つまり、panel1とpanel2の両方を同時に開くことはできません。参照:[FirefoxアドオンSDKで同時に2つのsdk /パネルを表示する方法](https://stackoverflow.com/q/38279839) – Makyen
[mcve]が必要なのは、 *を助ける。問題を再現するために必要なコードを再作成する必要がない場合は、**大いに**役立ちます。これはあなたがすでに持っているコードです。だから、あなたを助け、問題を再現する完全な* [mcve]を提供するのを助けてください。 [mcve]がなければ、あなたを手伝ってくれる労力も**多く**高くなります。あなたを喜んで助けることができる人の数を大幅に減らします。余計な努力をしても、あなたの問題の重要な部分に**推測**する必要があります。 – Makyen