Client-side scripting for mobile
Client scripting for mobile is identical to scripting for the web, with some exceptions. All new scripts must conform to certain guidelines. The following items are affected on the mobile platform: client scripts, UI policies, navigator modules, and UI actions.
General guidelines for writing client-side scripts for mobile
For new or existing scripts to be valid for mobile, they must conform to the following requirements:
- Enable scripts to run on the mobile UI.
- Use the new mobile methods in place of g_form.getControl().
- Don't use deprecated methods.
- Don't reference unsupported browser objects.
- Don't make synchronous JavaScript, GlideAjax, and GlideRecord calls.
- Don't call methods that aren't available for mobile.
For more information, see the following details.
|
Guideline |
Details |
|---|---|
|
Enable scripts for mobile |
Scripts must be enabled for the mobile platform. |
|
Use the new mobile methods |
Several new methods are available for modifying form fields instead of directly manipulating the HTML. These methods replace previous usages of g_form.getControl(), which is deprecated for the mobile platform. In your existing scripts, ensure that the new methods are used in place of methods that aren't valid on the mobile platform. For information on these new methods, refer to Mobile GlideForm() API. |
|
Don't use deprecated methods |
The following methods have been deprecated for the mobile platform because direct access to HTML elements is not allowed:
To ensure that existing scripts are compatible, remove all calls to deprecated methods from your code. For new scripts, don't use deprecated methods if you want the script to be valid for mobile. For g_form.getControl(), some of the functionality previously included with this method has been extracted to individual methods. Instead of g_form.getControl(), use the new methods described on the developer site. |
|
Don't reference unsupported browser objects |
The following browser objects aren't supported in mobile scripts:
Make sure that new scripts don't use these objects, and remove any usage of these objects from your existing scripts. Use GlideForm (g_form) instead, which provides methods such as setLabel(), addDecoration(), and hasField() for accomplishing the same tasks. |
|
Don't make synchronous JavaScript calls |
The mobile platform does not allow synchronous JavaScript calls. The g_form.getReference() method must now have the callback parameter defined. For example: JavaScript Be sure that all g_form.getReference() calls include the callback parameter. For example, the following script does not include a callback and is incompatible with the mobile platform: JavaScript The following script has been updated to include the callback and is compatible with the mobile platform: JavaScript |
|
Don't make synchronous Ajax calls |
The mobile platform does not allow synchronous GlideAjax calls. Any use of getXMLWait() in a GlideAjax call will not work on the mobile platform. Be sure that all GlideAjax calls are asynchronous. For more on synchronous versus asynchronous GlideAjax calls and getXMLWait(), see AJAX. For information on the available GlideAjax methods, refer to the GlideAjax API. |
|
Don't make synchronous GlideRecord calls |
The mobile platform does not allow synchronous GlideRecord calls. Make sure that any existing GlideRecord calls include a callback. For example, the following script does not include a callback and is incompatible with the mobile platform: JavaScript The following script has been updated to include the callback, and is compatible with the mobile platform: JavaScript |
|
Don't use methods unavailable on the mobile platform |
Due to the limitations and reduced functionality that is imposed by the mobile platform, the following methods aren't deprecated but aren't available on the mobile platform. If these run on the mobile platform, no action occurs:
|
UI policies
Use the Run scripts in UI type field to determine whether scripts run on the mobile platform, the desktop, or both. Update existing policies so that they apply to either the mobile platform or both. For new scripts, also ensure that the mobile option or both is selected.
Navigator modules
For existing code, modules must be transferred to either the sys_ui_application or sys_ui_module tables to be available on the mobile platform. When developing new code, be sure that all modules are created in the sys_ui_application or sys_ui_module tables.
UI actions
UI actions must be transferred to the sys_ui_ng_action table to appear on the mobile platform. UI action scripts that don't use deprecated methods don't require changes to the script itself. For new UI actions, be sure that they are created in the sys_ui_ng_action table.
Parent Topic:Writing client-side scripts
---
title: Client-side scripting for mobile
description: Client scripting for mobile is identical to scripting for the web, with some exceptions. All new scripts must conform to certain guidelines. The following items are affected on the mobile platform: client scripts, UI policies, navigator modules, and UI actions.
locale: en-US
canonical_url: https://www.servicenow.com/docs/r/api-reference/scripts/r\_MobilePlatformMigrationImpacts.html
release: brazil
product: Scripts
classification: scripts
topic_type: reference
last_updated: "2026-09-10"
reading_time_minutes: 4
breadcrumb: [Write client-side scripts, Scripting, API implementation, API implementation and reference]
---
# Client-side scripting for mobile
Client scripting for mobile is identical to scripting for the web, with some exceptions. All new scripts must conform to certain guidelines. The following items are affected on the mobile platform: client scripts, UI policies, navigator modules, and UI actions.
## General guidelines for writing client-side scripts for mobile
For new or existing scripts to be valid for mobile, they must conform to the following requirements:
- Enable scripts to run on the mobile UI.
- Use the new mobile methods in place of g\_form.getControl\(\).
- Don't use deprecated methods.
- Don't reference unsupported browser objects.
- Don't make synchronous JavaScript, GlideAjax, and GlideRecord calls.
- Don't call methods that aren't available for mobile.
For more information, see the following details.
<table id="table_Requirements"><thead><tr><th>
Guideline
</th><th>
Details
</th></tr></thead><tbody><tr><td>
Enable scripts for mobile
</td><td>
Scripts must be enabled for the mobile platform.
</td></tr><tr><td>
Use the new mobile methods
</td><td>
Several new methods are available for modifying form fields instead of directly manipulating the HTML. These methods replace previous usages of g\_form.getControl\(\), which is deprecated for the mobile platform. In your existing scripts, ensure that the new methods are used in place of methods that aren't valid on the mobile platform. For information on these new methods, refer to [Mobile GlideForm\(\) API](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/c_MobileGlideForm_API.md).
</td></tr><tr><td>
Don't use deprecated methods
</td><td>
The following methods have been deprecated for the mobile platform because direct access to HTML elements is not allowed:
- g\_form.getControl\(\)
- g\_form.getFormElement\(\)
- g\_form.getElement\(\)
To ensure that existing scripts are compatible, remove all calls to deprecated methods from your code. For new scripts, don't use deprecated methods if you want the script to be valid for mobile.
For g\_form.getControl\(\), some of the functionality previously included with this method has been extracted to individual methods. Instead of g\_form.getControl\(\), use the new methods described on the developer site.
</td></tr><tr><td>
Don't reference unsupported browser objects
</td><td>
The following browser objects aren't supported in mobile scripts:
- Window
- jQuery or Prototype \($, $j, or $$\)
- Document
Make sure that new scripts don't use these objects, and remove any usage of these objects from your existing scripts. Use GlideForm \(g\_form\) instead, which provides methods such as setLabel\(\), addDecoration\(\), and hasField\(\) for accomplishing the same tasks.
</td></tr><tr><td>
Don't make synchronous JavaScript calls
</td><td>
The mobile platform does not allow synchronous JavaScript calls. The g\_form.getReference\(\) method must now have the callback parameter defined. For example:
```javascript
g_form.getReference(fieldName, callback)
```
Be sure that all g\_form.getReference\(\) calls include the callback parameter. For example, the following script does not include a callback and is incompatible with the mobile platform:
```javascript
var userName = g_form.getReference('assigned_to').user_name;
g_form.setValue('u_assigned_user_name', userName);
```
The following script has been updated to include the callback and is compatible with the mobile platform:
```javascript
g_form.getReference('assigned_to', function(now_GR) {
g_form.setValue('u_assigned_user_name', gr.user_name);
});
```
</td></tr><tr><td>
Don't make synchronous Ajax calls
</td><td>
The mobile platform does not allow synchronous GlideAjax calls. Any use of getXMLWait\(\) in a GlideAjax call will not work on the mobile platform. Be sure that all GlideAjax calls are asynchronous. For more on synchronous versus asynchronous GlideAjax calls and getXMLWait\(\), see [AJAX](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/scripts/p_AJAX.md). For information on the available GlideAjax methods, refer to the [GlideAjax API](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/c_GlideAjaxAPI.md).
</td></tr><tr><td>
Don't make synchronous GlideRecord calls
</td><td>
The mobile platform does not allow synchronous [GlideRecord](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/server-api-reference/c_GlideRecordScopedAPI.md) calls. Make sure that any existing GlideRecord calls include a callback. For example, the following script does not include a callback and is incompatible with the mobile platform:
```javascript
var now_GR = new GlideRecord('incident');
gr.addQuery('number', g_form.getValue('related_incident'));
gr.query();
gr.next();
g_form.setValue('u_related_incident_description', gr.short_description);
```
The following script has been updated to include the callback, and is compatible with the mobile platform:
```javascript
var now_GR = new GlideRecord('incident');
gr.addQuery('number', g_form.getValue('related_incident'));
gr.query(function(now_GR) {
gr.next();
g_form.setValue('u_related_incident_description', gr.short_description);
});
```
</td></tr><tr><td>
Don't use methods unavailable on the mobile platform
</td><td>
Due to the limitations and reduced functionality that is imposed by the mobile platform, the following methods aren't deprecated but aren't available on the mobile platform. If these run on the mobile platform, no action occurs:
- showRelatedList \(\)
- hideRelatedList \(\)
- showRelatedLists \(\)
- hideRelatedLists\(\)
- flash\(\)
- getSections\(\)
- enableAttachments\(\)
- disableAttachments\(\)
- setReadonly\(\) \(Note that setReadOnly\(\) is available\)
- getParameter\(\)
</td></tr></tbody>
</table>**Note:** Focusing an element on a mobile form is not supported.
## UI policies
Use the **Run scripts in UI type** field to determine whether scripts run on the mobile platform, the desktop, or both. Update existing policies so that they apply to either the mobile platform or both. For new scripts, also ensure that the mobile option or both is selected.
## Navigator modules
For existing code, modules must be transferred to either the sys\_ui\_application or sys\_ui\_module tables to be available on the mobile platform. When developing new code, be sure that all modules are created in the sys\_ui\_application or sys\_ui\_module tables.
## UI actions
UI actions must be transferred to the sys\_ui\_ng\_action table to appear on the mobile platform. UI action scripts that don't use deprecated methods don't require changes to the script itself. For new UI actions, be sure that they are created in the sys\_ui\_ng\_action table.
**Parent Topic:**[Writing client-side scripts](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/scripts/client-side-scripting-overview.md)
This file has no frontmatter.