イベント処理の記述方法

目次

イベントハンドラーを登録する

kintone で発生するさまざまなイベントとイベントハンドラーを紐付けると、任意の処理を実行できます。

アプリ、スペースも含むすべての画面で利用できます。 ただし、スペースの本文に貼り付けたアプリでは利用できません。

関数

PC / モバイル

kintone.events.on(type, handler)

パラメーター名

引数 必須 説明
type 文字列または配列(文字列) 必須 イベントハンドラーを紐付けるイベントのタイプ
イベントごとに異なります。詳しくは、それぞれのイベントページを確認してください。
handler 関数 必須 イベント発生時に実行されるイベントハンドラー
イベントハンドラーの引数として渡されるイベントオブジェクトは、イベントごとに異なります。詳しくは、それぞれのイベントページを確認してください。
Promise に対応したイベントの場合、イベントハンドラーの内で kintone.Promise オブジェクトを return することで、非同期処理の完了を待ってからフォームの値に応じた制御ができます。

戻り値

なし

サンプルコード

1
2
3
4
5
6
7
8
kintone.events.on('app.record.index.show', (event) => {
  console.log(event);
});

// 複数のイベントで同じイベントハンドラーを登録する場合
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], (event) => {
  console.log(event);
});

イベントハンドラーを削除する

イベントに紐付けたハンドラーを削除します。

アプリ、スペースも含むすべての画面で利用できます。 ただし、スペースの本文に貼り付けたアプリでは利用できません。

関数

PC / モバイル

kintone.events.off(type, handler)

引数

パラメーター名 指定する値 必須 説明
type 文字列または文字列の配列 省略可 イベントハンドラーを紐付けるイベントのタイプ
イベントごとに異なります。詳しくは、それぞれのイベントページを確認してください。
handler 関数 必須 イベント発生時に実行されるイベントハンドラー
イベントハンドラーの引数として渡されるイベントオブジェクトは、イベントごとに異なります。詳しくは、それぞれのイベントページを確認してください。
Promise に対応したイベントの場合、イベントハンドラーの内で kintone.Promise オブジェクトを return することで、非同期処理の完了を待ってからフォームの値に応じた制御ができます。

戻り値

次のいずれかが返ります。

  • true:ひとつでも削除に成功した場合
  • false:削除対象のイベントハンドラーがひとつも見つからなかった場合

サンプルコード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const handler = (event) => {
  console.log(event);
};
kintone.events.on('app.record.index.show', handler);

// 指定されたイベントタイプから指定されたハンドラーを削除する
kintone.events.off('app.record.index.show', handler);

// 指定されたイベントタイプからすべてのハンドラーを削除する
kintone.events.off('app.record.index.show');

// すべてのイベントタイプからすべてのハンドラーを削除する
kintone.events.off();

注意事項

  • 2017 年 5 月版時点で確認している、アプリの JavaScript ファイルの読み込み順は次のとおりです。
    同じアプリに、アプリの JavaScript ファイル、プラグインの JavaScript ファイルが適用されている場合:
    1. アプリの JavaScript ファイル
    2. プラグインの JavaScript ファイル
  • イベントハンドラーは追加されていくのみで、上書きされることはありません。
    これは JavaScript 全般の仕様で、kintone JavaScript API でもこの仕様に準じます。
    上書きしたい場合は、設定済みのイベントハンドラーを削除した後に、新しいイベントを登録してください。
  • 同じアプリに同じ名前のカテゴリーが存在する場合は、キー名に「カテゴリー」を含むオブジェクトを return すると、意図しないカテゴリーを選択することがあります。
    意図しないカテゴリーを選択する場合は、「カテゴリー」プロパティを削除してから return してください。
    この現象が発生するイベントは、次のとおりです。
    • レコード一覧画面
      • app.record.index.edit.submit
      • app.record.index.edit.change.フィールドコード
    • レコード追加画面
      • app.record.create.show
      • app.record.create.submit
      • app.record.create.change.フィールドコード
      • mobile.app.record.create.show
      • mobile.app.record.create.submit
      • mobile.app.record.create.change.フィールドコード
    • レコード編集画面
      • app.record.edit.show
      • app.record.edit.submit
      • app.record.edit.change.フィールドコード
      • mobile.app.record.edit.show
      • mobile.app.record.edit.submit
      • mobile.app.record.edit.change.フィールドコード
    • レコード詳細画面
      • app.record.detail.process.proceed