Newer Version Available
openTab() for Lightning Experience
Arguments
The method provides the same argument for both Aura Components and Lightning Web Components (LWC). However, icon, iconAlt, and label are supported only for LWC.
| Name | Type | Description |
|---|---|---|
| pageReference | object | Optional. Generates a unique URL to open. A page reference contains attributes that apply to all pages of that type. See the Aura pageReference types and LWC pageReference types. |
| recordId | ID | Optional. Specifies the record to open. |
| url | URL |
Optional. The URL representing the content of the new workspace tab. The URL can be either relative or absolute. To use a third-party domain, add the site as a CSP Trusted Site. |
| focus | boolean | Optional. Specifies whether the new tab has focus. To display the tab immediately, set focus to true. To open the tab in the background, set focus to false. |
| overrideNavRules | boolean | Optional. Specifies whether the open tab respects existing navigation rules. This argument has no effect on records that have no navigation rules configured and URLs that do not point to a record. |
| icon | string | Optional. An SLDS icon key in the format action:canvas where action is the SLDS icon category. See a full list of icon categories and keys on the SLDS reference site. Available for LWC only. |
| iconAlt | string | Optional. Alternative text for the icon. Available for LWC only. |
| label | string | Optional. The text label for the icon. Available for LWC only. |
LWC Sample Code
This component has a function that opens a specified tab and applies focus on it.
1import { LightningElement, wire } from 'lwc';
2import { IsConsoleNavigation, openTab } from 'lightning/platformWorkspaceApi';
3
4export default class OpenTabExample extends LightningElement {
5 @wire(IsConsoleNavigation) isConsoleNavigation;
6
7 async openTab() {
8 if (!this.isConsoleNavigation) {
9 return;
10 }
11 await openTab({
12 pageReference: {
13 type: 'standard__objectPage',
14 attributes: {
15 objectApiName: 'Account',
16 actionName: 'home'
17 }
18 },
19 icon: 'utility:bookmark',
20 focus: true,
21 label: 'Account List'
22 });
23 }
24}For another example that uses openTab(), see the workspaceAPIOpenTab component in the lwc-recipes repo.
To make your component available for use in a Lightning console app, specify the lightning__AppPage target in the component’s configuration file.
Aura Components Sample Code
This component has a button that when pressed, opens a tab.
1<aura:component implements="flexipage:availableForAllPageTypes" access="global">
2 <lightning:workspaceAPI aura:id="workspace"/>
3 <lightning:button label="Open Tab" onclick="{!c.handleOpenTab}"/>
4</aura:component>1({
2 handleOpenTab: function(component, event, helper) {
3 var workspaceAPI = component.find("workspace");
4 workspaceAPI.openTab({
5 pageReference: {
6 "type": "standard__recordPage",
7 "attributes": {
8 "recordId":"500xx000000Ykt2AAC",
9 "actionName":"view"
10 },
11 "state": {}
12 },
13 focus: true
14 }).then(function(response) {
15 workspaceAPI.getTabInfo({
16 tabId: response
17 }).then(function(tabInfo) {
18 console.log("The recordId for this tab is: " + tabInfo.recordId);
19 });
20 }).catch(function(error) {
21 console.log(error);
22 });
23 }
24)}1({
2 handleOpenTab : function(component, event, helper) {
3 var workspaceAPI = component.find("workspace");
4 workspaceAPI.openTab({
5 recordId: '001xx000003DIkeAAG',
6 focus: true
7 }).then(function(response) {
8 workspaceAPI.getTabInfo({
9 tabId: response
10 }).then(function(tabInfo) {
11 console.log("The url for this tab is: " + tabInfo.url);
12 });
13 })
14 .catch(function(error) {
15 console.log(error);
16 });
17 }
18})1({
2 handleOpenTab : function(component, event, helper) {
3 var workspaceAPI = component.find("workspace");
4 workspaceAPI.openTab({
5 url: '/lightning/r/Account/001xx000003DI05AAG/view',
6 focus: true
7 }).then(function(response) {
8 workspaceAPI.getTabInfo({
9 tabId: response
10 }).then(function(tabInfo) {
11 console.log("The recordId for this tab is: " + tabInfo.recordId);
12 });
13 }).catch(function(error) {
14 console.log(error);
15 });
16 }
17})