あなたの質問を完全に理解しているかどうかは 100% 確信が持てませんが、2 セントを差し上げてみます。
私のアプローチは、使用しているファイルとは異なる xul ファイルから要素を取得するのに役立ちません。それが可能かどうかはわかりません。
たとえばリッチリストボックスアイテムを作成したいときのように、大きな要素を複数回使用したいときに私が通常行うことは次のとおりです。
アイテムのテンプレートを作成します。
<richlistbox id="richlistbox"/>
<richlistitem id="richListItemTemplate" hidden="true">
<listcell class="classOne" label="one" width="50"/>
<listcell class="classTwo" label="two" width="80"/>
</richlistitem>
テンプレートが非表示になっていることに注意してください。
次に、リッチリストボックスを含むパネルまたはページをロードすると、次のように動的に入力します。
for(var i = 0; i < elements.length; i++) {
var item = document.getElementById("richListItemTemplate").cloneNode(true);
item.removeAttribute("id");
item.removeAttribute("hidden");
item.getElementsByClassName("classOne")[0].setAttribute("label",elements.value);
item.getElementsByClassName("classTwo")[0].setAttribute("label",elements.value);
document.getElementById("richlistbox").appendChild(item);
}
このようにして、元の要素のクローンを作成し、id を削除しますが、その要素内で一意の className を介してその子要素にアクセスできます。
多分あなたはあなたのボタンに同じことをすることができます. andでを作成し、buttonTemplate
それを要素に追加する場合は、buttonTemplate.cloneNode(true) (すべての子要素が必要なため true) を実行し、必要に応じてカスタマイズしてから、欲しい要素。id="myButtonTemplate"
hidden="true"
これがお役に立てば幸いです。