正常に動作する次の(簡略化された)例を検討してください。
var tabs = window.gBrowser.tabs;
for (var i = 2, len = tabs.length; i < len; i++) {
var uri = window.gBrowser.getBrowserAtIndex(i).currentURI.spec;
}
以下は、最後のタブでメッセージwindow.gBrowser.getBrowserAtIndex(...) is undefinedで失敗することがあります
var tabs = window.gBrowser.tabs;
for (var i = 2, len = tabs.length; i < len; i++) {
var uri = window.gBrowser.getBrowserAtIndex(i).currentURI.spec;
window.gBrowser.removeTab(window.gBrowser.tabContainer.childNodes[i]);
}
失敗する理由と、常にではなく時々失敗する理由がわかりません。
gBrowser.getBrowserAtIndex(i)
タブの URL を取得する代わりに使用できる他の方法はありますか?