クライアントスクリプト
クライアントスクリプトを使用すると、フォームの読み込み時、フォームの送信後、フィールドの値の変更時など、クライアントベースのイベントが発生したときに、システムがクライアント (Web ブラウザー) で JavaScript を実行できます。
クライアントスクリプトを使用して、ユーザーがフォームを使用しているときに、フォーム、フォームフィールド、およびフィールド値を設定します。クライアントスクリプトでは次を行うことができます。
- フィールドの非表示または表示を切り替える
- フィールドを読み取り専用または書き込み可能にする
- ユーザーのロールに基づいてフィールドをオプションまたは必須にする
- 他のフィールドの値に基づいて 1 つのフィールドの値を設定する
- ユーザーのロールに基づいて選択リストのオプションを変更する
- フィールドの値に基づいてメッセージを表示する
警告:
クライアントスクリプトは、フォームのユーザーエクスペリエンスを最適化することを目的としています。クライアントスクリプトは、データへの不要なアクセスを保護するためのものではありません。
データへの不要なアクセスを防ぐために、ACL またはデータポリシーを使用して機密フィールドを非表示にするか、読み取り専用にします。
詳細については、「Access Control List Rules」または「Data policy」を参照してください。
クライアントスクリプトが実行される場所
onCellEdit クライアントスクリプトを除き、クライアントスクリプトはフォームおよび検索ページにのみ適用されます。フォームのフィールド値を制御するクライアントスクリプトを作成する場合は、別の方法を使用してリスト内のフィールド値を制御する必要があります。
- フィールド値を編集できるユーザーを制限するアクセス制御を作成します。
- コンテンツを検証するビジネスルールを作成します。
- コンテンツを検証するデータポリシーを作成します。
- onCellEdit() クライアントスクリプトを作成してコンテンツを検証します。
- テーブルのリスト編集を無効にします。
注:
クライアントスクリプトは ServiceNow モバイル アプリケーションではサポートされていません。
クライアントスクリプトフォーム
| フィールド | 説明 |
|---|---|
| 名前 | クライアントスクリプトの名前。 |
| テーブル | クライアントスクリプトを適用するテーブル。 |
| UI タイプ | クライアントスクリプトを適用するターゲットユーザーインターフェイス。 |
| タイプ | onLoad():システムが最初にフォームをレンダリングするとき、およびユーザーがデータを入力できるようになる前に実行されます。通常、onLoad() クライアントスクリプトは、現在のフォームをクライアントサイドで操作するためやデフォルトのレコード値を設定するために使用されます。 onSubmit():フォームが送信されると実行されます。通常、onSubmit() クライアントスクリプトがフォーム上のデータを検証して、フォームが正しく送信されるようにします。onSubmit() クライアントスクリプトから false を返すことでフォームの送信を取り消すこともできます。 onChange():フォーム上の特定のフィールド値が変更されたときに実行されます。onChange() クライアントスクリプトには、以下のパラメーターを指定する必要があります。
onCellEdit():リストエディターがセル値を変更したときに実行されます。onCellEdit() クライアントスクリプトには、以下のパラメーターを指定する必要があります。
|
| フィールド名 | スクリプトが適用されるフィールドの名前。スクリプトがフィールド値の変更に応答する場合にのみ使用できます (onChange または onCellEdit スクリプトタイプ)。 |
| アプリケーション | このクライアントスクリプトが存在するアプリケーション。 |
| アクティブ | 選択すると、クライアントスクリプトが有効になります。クライアントスクリプトを無効にするには、このフィールドの選択を解除します。 |
| 継承 | クライアントスクリプトが拡張テーブルに適用されるかどうかを示します。 |
| グローバル | true の場合、クライアントスクリプトはテーブルのすべてのビューで実行されます。 |
| 表示 | [グローバル] が選択されていない場合にのみ表示されます。クライアントスクリプトが実行されるビュー。 |
| 説明 | クライアントスクリプトの機能と目的を説明するコンテンツ。 |
| メッセージ | getMessage('[message]') を使用したローカライズ済みメッセージとして、クライアントスクリプトに提供されるテキスト文字列 (各行に 1 つ)。詳細については、「クライアントスクリプトメッセージの翻訳」を参照してください。 |
| スクリプト | クライアントスクリプトが含まれています。 |
| スクリプトを隔離 | 新しいクライアントスクリプトは、DOM への直接アクセスを無効にして、Strict モードで実行されます。jQuery、prototype、および window オブジェクトへのアクセスも無効になります。スクリプト単位でこれを無効にするには、このフォームを構成して [スクリプトを隔離] チェックボックスをオンにします。すべての新しいグローバルスコープのクライアント側スクリプトに対してこの機能を無効にするには、システムプロパティ glide.script.block.client.globals を false に設定します。 |