Tab

A single tab which should be placed inside a tabs element. The user may click a tab to bring the associated page of the tabbox to the front.

More information about tab

The tab element implements the following interfaces:

nsIAccessibleProvider   nsIDOMXULSelectControlItemElement  

Attributes:

accesskey afterselected beforeselected crop disabled
image label linkedpanel selected validate

Properties and Methods:

accessible label linkedPanel selected tabs

Attributes:

Inherited from XUL Element:

align
allowevents
allownegativeassertions
class
coalesceduplicatearcs
collapsed
container
containment
context
contextmenu
datasources
dir
empty
equalsize
flags
flex
height
hidden
id
insertafter
insertbefore
left
maxheight
maxwidth
menu
minheight
minwidth
mousethrough
observes
ordinal
orient
pack
persist
popup
position
preference-editable
ref
removeelement
sortDirection
sortResource
sortResource2
statustext
style
template
tooltip
tooltiptext
top
uri
wait-cursor
width

accesskey

Type: character

This should be set to a letter that is used as a shortcut key. This letter should be one of the characters that appears in the label text for the tab. This letter will typically be drawn underlined, although this behavior will be platform and theme specific. When the user presses ALT (or a similar key that varies on each platform) and the access key, the tab will be activated from anywhere in the window. Although the value is case insensitive, a letter with the case matching the accesskey attribute will used if both cases exist in the label.

afterselected

Type: boolean

This is set to true if the tab is immediately after the currently selected tab. This is set automatically set when needed and you shouldn't adjust it manually. This is primarily useful for themes so that they can adjust the appearance of the area around the selected tab.

beforeselected

Type: boolean

This is set to true if the tab is immediately before the currently selected tab. This is set automatically set when needed and you shouldn't adjust it manually. This is primarily useful for themes so that they can adjust the appearance of the area around the selected tab.

crop

Type: one of the values below

If the label of the tab is too small to fit in its given space, the text will be cropped on the side specified by the crop attribute. An ellipsis will be used in place of the cropped text. If the box direction is reversed, the cropping is reversed.

disabled

Type: boolean

Indicates whether the tab is disabled or not. If this attribute is set to true, the tab is disabled. This is usually drawn with the text in grey. If the tab is disabled, it does not respond to user actions. The element cannot be focused and the command event will not fire. The element will still respond to mouse events. To enable the tab, leave the attribute out entirely as opposed to setting the value to false.

image

Type: image URL

The URL of the image to appear on the tab. If this is attribute is left out, no image appears. The position of the image is determined by the dir and orient attributes.

label

Type: string

The label that will appear on the tab. If this is left out, no text appears.

linkedpanel

Type: id of a tabpanel element

The id of the linked tabpanel element that will be displayed when the tab is selected. If this attribute is not used, the tab will be connected to the panel at the corresponding index in the tabpanels element that the tab is in its tabs container. However, if this attribute is used, this behavior is overridden, and the tab will always be linked to a specific panel. This might be used to avoid duplication by linking several tabs to one panel with slight differences to the content adjusted in the select event.

selected

Type: boolean

This attribute is set to true if the tab is selected by default.

validate

Type: one of the values below

This attribute indicates whether to load the image from the cache or not. This would be useful if the images are stored remotely or you plan on swapping the image frequently. The following values are accepted, or leave out the attribute entirely for default handling:


Properties and Methods:

Inherited from XUL Element:

align
allowEvents
blur
boxObject
boxObject.element
boxObject.getLookAndFeelMetric
boxObject.height
boxObject.screenX
boxObject.screenY
boxObject.width
boxObject.x
boxObject.y
builder
className
click
collapsed
contextMenu
controllers
database
datasources
dir
doCommand
flex
focus
getElementsByAttribute
height
hidden
id
left
maxHeight
maxWidth
menu
minHeight
minWidth
observes
ordinal
orient
pack
persist
ref
resource
statusText
style
tooltip
tooltipText
top
width

Inherited from Element:

addEventListener
appendChild
attributes
childNodes
cloneNode
dispatchEvent
firstChild
getAttribute
getAttributeNS
getAttributeNode
getAttributeNodeNS
getElementsByTagName
getElementsByTagNameNS
hasAttribute
hasAttributeNS
hasAttributes
hasChildNodes
insertBefore
isSupported
lastChild
localName
namespaceURI
nextSibling
nodeName
nodeType
nodeValue
normalize
ownerDocument
parentNode
prefix
previousSibling
removeAttribute
removeAttributeNS
removeAttributeNode
removeChild
removeEventListener
replaceChild
setAttribute
setAttributeNS
setAttributeNode
setAttributeNodeNS
tagName

accessible

Type: nsIAccessible

Returns the accessibility object for the tab.

label

Type: string

The label that will appear on the tab. If this is left out, no text appears.

linkedPanel

selected

Type: boolean

This attribute is set to true if the tab is selected by default.

tabs

Type: tabs element

The tabs element that the tab is contained in.

Add a note User Contributed Notes
May 26, 2005, 7:20 pm analogai at gmail dot com
When collapsing tabs, the corresponding tab element and tabpanel element pairs need be collapsed together. Failure to do this will hide tabs and and you can't get them to be visible again (2nd tab and on) via property/attribute changes.

Tabs can be collapsed through either ".collapsed" or ".setAttribute" in JavaScript shown below.

method 1:

if(Boolean(inp_state)){
document.getElementById(inp_id_tab).collapsed = false;
document.getElementById(inp_id_tabpanel).collapsed = false;
}else{
document.getElementById(inp_id_tab).collapsed = true;
document.getElementById(inp_id_tabpanel).collapsed = true;
}

You can also use attributes:

if(Boolean(inp_state)){
document.getElementById(inp_id_tab).setAttribute('collapsed','false');
document.getElementById(inp_id_tabpanel).setAttribute('collapsed','false');
}else{
document.getElementById(inp_id_tab).setAttribute('collapsed','true');
document.getElementById(inp_id_tabpanel).setAttribute('collapsed','true');
}
February 23, 2005, 9:11 am hoc at nospam dot com
In reply to: murray dot bryant at harmonygold dot com dot au

It seems the tabs-property of each tab contains null after initial parsing of the xul-code. During or after parsing - dunno - gecko probably uses that pointer, of the tab with attribute selected="true", to get the tabs object to set that same tab as it's selectedItem. Totally wild guess to be honest, but i guess it's something like that.

Anyway, following function fixes the issue without looping at all:


function selectTab(tabsId,tabToSelectId)
{
document.getElementById(tabsId).selectedItem =
document.getElementById(tabToSelectId);
}
January 19, 2005, 11:33 pm murray dot bryant at harmonygold dot com dot au
As at Mozilla 1.7.5 the selected="true" does not work.

You can to use javascript to step through the tabs until you get the right one


function selectTab(tabName,tabBox){
var item = document.getElementById(tabBox) ;
var id = item.selectedTab.getAttribute('id');
if (id != tabName && item.selectedTab.nextSibling!=null){
item._tabs.advanceSelectedTab(0);
selectTab(tabName,tabBox);
}

}

where tabname is the id of the tab and tabbox is the name of the tabbox

Use this on the onload of the window

Copyright © 1999 - 2005 XULPlanet.com