Enumerating tabbrowser tabs: Difference between revisions
From MozillaZine Knowledge Base
Jump to navigationJump to search
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{extdev}} | |||
==Enumerating tabbrowser tabs== | ==Enumerating tabbrowser tabs== | ||
<ul><li>To go through all open tabs in a browser, you first need to get a reference to browser's window. If your code is executed from a browser.xul (in Firefox) overlay (for example it is a toolbar button or menu ''click'' handler), you can access current window via <tt>window</tt> pre-defined variable. | <ul><li>To go through all open tabs in a browser, you first need to get a reference to browser's window. If your code is executed from a browser.xul (in Firefox) overlay (for example it is a toolbar button or menu ''click'' handler), you can access current window via <tt>window</tt> pre-defined variable. | ||
Line 18: | Line 20: | ||
To learn what methods are available for <browser> and <tabbrowser> elements, use [[DOM Inspector]] or look in [http://lxr.mozilla.org/seamonkey/source/toolkit/content/widgets/browser.xml browser.xml] and [http://lxr.mozilla.org/seamonkey/source/toolkit/content/widgets/tabbrowser.xml tabbrowser.xml] for corresponding [[Dev : Extensions : Resources#XBL|XBL bindings]]. | To learn what methods are available for <browser> and <tabbrowser> elements, use [[DOM Inspector]] or look in [http://lxr.mozilla.org/seamonkey/source/toolkit/content/widgets/browser.xml browser.xml] and [http://lxr.mozilla.org/seamonkey/source/toolkit/content/widgets/tabbrowser.xml tabbrowser.xml] for corresponding [[Dev : Extensions : Resources#XBL|XBL bindings]]. | ||
[[Category:Development]] |
Revision as of 03:16, 19 December 2004
This page is part of the extension development documentation project.
Ask your questions in MozillaZine Forums. Also try browsing example code.
Note: development documentation is in process of being moved to Mozilla Development Center (MDC).
Enumerating tabbrowser tabs
- To go through all open tabs in a browser, you first need to get a reference to browser's window. If your code is executed from a browser.xul (in Firefox) overlay (for example it is a toolbar button or menu click handler), you can access current window via window pre-defined variable. If your code is executed from its own window (for example, Settings dialog), you can use nsIWindowMediator to get it (further info in nsIWindowMediator).
- Then you need to get the <tabbrowser> element. You can get it with win.gBrowser, where win is the browser's window from the previous step. You can use just gBrowser instead of window.gBrowser, if running from browser.xul overlay.
- Now use gBrowser.mPanelContainer.childNodes.length to get the number of open tabs. Then use gBrowser.getBrowserAtIndex() to get a <browser> element. For example:
var l = gBrowser.mPanelContainer.childNodes.length; for(var i = 0; i < l; i++) { var b = gBrowser.getBrowserAtIndex(i); try { dump(b.currentURI.spec); // dump URLs of all open tabs to console } catch(e) {} }
To learn what methods are available for <browser> and <tabbrowser> elements, use DOM Inspector or look in browser.xml and tabbrowser.xml for corresponding XBL bindings.