Know Which Features to Avoid in Lightning Experience
Learning Objectives
Knowing Which Features to Avoid in Lightning Experience
Lightning Experience is still evolving and growing, and—Safe Harbor alert!—we hope to shrink this list as time goes on.
Salesforce Classic Header and Sidebar Are Always Suppressed
Avoid <apex:iframe>
Visualforce pages are wrapped in their own iframe when displayed in Lightning Experience. As discussed at length in Exploring the Visualforce App Container, this has a number of significant implications for how the page behaves. Adding an additional level to the iframe stack increases the complexity of the environment.
You can manage this complexity if you understand iframes and how they affect the DOM and JavaScript. However, it's difficult to debug nested iframes if you don't have experience working with them. For this reason, we suggest avoiding this tag on pages used in Lightning Experience.
No, Really, Don’t Set window.location Directly
See the Managing Navigation unit for details.
sforce.one Isn’t Salesforce Mobile-Only
Use one of the documented methods to distinguish between the Salesforce Classic, the Salesforce app, and Lightning Experience environments. Supported techniques are available in Visualforce, Apex, and JavaScript.
For the full details, see the Sharing Visualforce Pages Between Classic and Lightning Experience unit.
Changes With Action Overrides
- Object tab
- Object list
- Record view
- Record edit
- Record create
- Record delete
Regardless of the user interface settings in your organization, both object tab and object list are available to be overridden in Setup. Overriding the object tab action overrides the object home page in Lightning Experience, as expected.
However, when in Lightning Experience, the object list action isn’t accessible in the user interface, so there’s no way to fire it. If your organization has overridden the object list action for any object, that functionality won’t be available when users are using Lightning Experience. If there are essential features in that override, you’ll need to find another way to make them available.
Override in Setup | Salesforce Classic | Lightning Experience | Salesforce App |
---|---|---|---|
Tab | object tab | object home | search |
List | object list | n/a | object home |
View | record view | record home | record home |
Edit | record edit | record edit | record edit |
New | record create | record create | record create |
Delete | record delete | record delete | record delete |