2016-05-14 15 views
1

古いXULベースのアドオンで作業していて、使用中のファイルがabout.xulであることがわかりました。このファイルは、アドオンを右クリックしてコンテキストメニューから[バージョン情報]を選択すると、about:addonsページから使用されます。 OK。アドオンにはaboutオプションもある独自のcontext-menuのアイコンがあります。ここでabout.xulはmenuitem-> oncommand-> window.openDialog()からアクセスされます。外部XULファイルをタブパネルに挿入

<menuitem label="About" oncommand="window.openDialog('chrome://{GUID}/content/about.xul', /* other parameters */);"/> 

もう一度言えば、これは十分に公正で、同じXULファイルをそのまま使用して再利用できます。しかし、これらの2つのオプションは、ユーザーにとっては見えない可能性があります。アドオンにはoptions.xulというファイルがあり、いくつかのタブボックス - >タブパネルがあります。私はabout.xulファイルを3回目に再利用することは素晴らしいと思っていました。ここに「About」パネルを追加するだけです。

そして、わかった、これは思ったほど簡単ではないかもしれない。

答えて

1

少しの研究、試行錯誤の末、私はだけの3番目の<tab><tabpanel>を追加しました。

<tabs> 
    [other tabs] 
    <tab label="About"/> 
</tabs> 

<tabpanels> 
    [other tabpanels] 
    <tabpanel> 
     <iframe src="chrome://{GUID}/content/about.xul" flex="1"/> 
    </tabpanel> 
</tabpanel> 

これは実際には機能していて、当初考えていたよりもはるかに単純でした。

しかし、特定のケースでは、[オプション]パネルから[バージョン情報]ページが呼び出されると、スタイルがデフォルトではなく[オプション]パネルに一致するようにCSSを動的に変更する必要があります。

残っているのは、aboutURLが定義されていないときに表示されるデフォルトの[About]ダイアログページを効果的に再作成することです。これは、基本的なXULコードを記述し、必要に応じて動的にCSSを適用するエクササイズです。これらのすべては、XULを3つの呼び出しコンテキストから再利用された1つのページであるXULに組み込むことを学ぶことで可能になりました。これにより、ページ全体が動的に生成されるようにステージが設定され、SDKやそれ以降の移行に備えてくれました。

関連する問題