Index
イベント処理の概要
kintone で発生する様々なイベントについて、ハンドラーを紐付けして実行することができます。
イベントハンドラーを登録する
- PC用とスマートフォン用で利用できます。
- 全ての画面(アプリ、スペースも含む)で利用できます。※ただしスペースの本文に貼りつけたアプリでは利用できません。
関数
kintone.events.on(event, handler(event))
プロパティ
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
event | 文字列 または 文字列の配列 | 必須 | イベントハンドラーをバインドする対象のイベントタイプ、またはイベントタイプの配列を指定します。 |
handler(event) | Function(Object) | 必須 |
イベント発生時に実行されるハンドラーです。eventオブジェクトは共通でtypeプロパティにイベントタイプを持ちます。 下記の Promise 対応イベントのハンドラー内で kintone.Promiseオブジェクト※を return すると、非同期処理の完了を待って次の処理を開始します。 Promise 対応イベント
※ kintone.Promiseオブジェクトは、thenメソッドを持っているオブジェクトです。 |
戻り値
ありません。
サンプルプログラム
特定のイベントタイプ内の特定のイベントハンドラーを削除する
- PC用とスマートフォン用で利用できます。
- 全ての画面(アプリ、スペースも含む)で利用できます。※ただしスペースの本文に貼りつけたアプリでは利用できません。
関数
kintone.events.off(event, handler(event))
プロパティ
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
event | 文字列 または 文字列の配列 | 必須 | 削除対象のイベントハンドラーを登録したイベントタイプ、またはイベントタイプの配列を指定します。 |
handler(event) | Function(Object) | 必須 | 削除対象のイベントハンドラーです。 イベント登録時と同一のオブジェクトを指定します。 |
戻り値
- true:一つでも削除に成功した場合
- false:削除対象のイベントハンドラーが1つも見つからなかった場合
サンプルプログラム
特定のイベントタイプ内のすべてのイベントハンドラーを削除する
- PC用とスマートフォン用で利用できます。
- 全ての画面(アプリ、スペースも含む)で利用できます。※ただしスペースの本文に貼りつけたアプリでは利用できません。
関数
kintone.events.off(event)
プロパティ
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
event | 文字列 または 文字列の配列 | 必須 | 削除対象のイベントハンドラーを登録したイベントタイプ、またはイベントタイプの配列を指定します。 |
戻り値
- true:一つでも削除に成功した場合
- false:削除対象のイベントハンドラーが1つも見つからなかった場合
サンプルプログラム
すべてのイベントハンドラーを削除する
- PC用とスマートフォン用で利用できます。
- 全ての画面(アプリ、スペースも含む)で利用できます。※ただしスペースの本文に貼りつけたアプリでは利用できません。
関数
kintone.events.off()
戻り値
- true:1つでも削除された場合
- false:削除対象のイベントハンドラーが1つも見つからなかった場合
注意事項
-
アプリのJavaScriptファイルの読み込み順番は、2017年5月版時点で次の順番で動作をすることが確認されています。同じアプリにアプリのJavaScriptファイル、プラグインのJavaScriptファイル両方を設定した場合1. アプリのJavaScriptファイル
2. プラグインのJavaScriptファイル - イベントハンドラは追加されていくだけで上書きされることはありません(これはJavaScript全般の仕様でkintone JavaScript APIを使う場合も同様です。)。
上書きをしたい場合は、設定済みのイベントハンドラを削除したのちに、新しいイベントを登録する処理が必要となります。 - 同じ名前のカテゴリが同一アプリ内に複数存在している場合、下記の「発生するイベント」でプロパティ「カテゴリ」を含むオブジェクトをreturnすると、意図しないカテゴリが選択されることがあります。
この場合は、プロパティ「カテゴリ」を削除してからreturnしてください。
発生するイベント:
- app.record.create.submit
- app.record.create.change.<フィールドコード>
- app.record.index.edit.submit
- app.record.index.edit.change.<フィールドコード>
- app.record.edit.submit
- app.record.edit.change.<フィールドコード>
- app.record.detail.process.proceed
- mobile.app.record.create.submit
- mobile.app.record.create.change.<フィールドコード>
- mobile.app.record.edit.submit
- mobile.app.record.edit.change.<フィールドコード>
kintoneイベント 「スペースに貼りつけたアプリでは利用できません。」とありますが
スペースではjavascriptを組み込めないということでしょうか?
一部、詳細画面表示時にボタン貼付して処理を行っているのですが
正しく動作していますが・・・
おそらく、スペースの本文へのアプリ貼り付けのことを言っているのだと思います。
https://help.cybozu.com/ja/k/user/paste_app.html
門屋様
「スペースの本文への」ですっきりしました。
ありがとうございます。
kintone.Promise対応のイベントを最新化して頂けると助かります。
mharum様
ご指摘いただきありがとうございました。cybozu.com developer network事務局です。
kintone.Promise対応のイベント一覧を更新いたしました。
今後とも cybozu.com developer network をよろしくお願い申し上げます。
いろいろ調べたのですが答えを見つけられなかったので、基本的なこととは思いますが質問させてください。
スペースでもイベントハンドラは有効ということのようですが、どのイベントハンドラを使用すればよいのでしょうか。
具体的には、モバイルのスペースのコメント一覧を表示する際に実行させたいと考えております。
いくつか試してみたのですが、動作していないようでした。
よろしくおねがいします。
fhanadeal様
お世話になっております。cybozu developer network事務局です。
イベントハンドラ自体はすべての画面で利用可能ですが、現状提供されているAPIでは、スペース表示のタイミングで発生するイベントはございません。
お役に立てず申し訳ございません。
利用できるイベントについては、kintone JavaScript API一覧 の「イベント」をご確認ください。
※モバイルで利用できるイベントは「Mobile」にアイコンが表示されています。
なお、具体的なコードの書き方の質問につきましては、ぜひcybozu developer コミュニティをご活用頂けますと幸いです。
サンプルプログラムのhandlerが値を返していないものになっていますが、本来はハンドラーの引数に渡されているeventオブジェクトを返すべきなのではないでしょうか。javascriptによるカスタマイズを利用しているのですが、他のpluginやカスタマイズのjavascriptと一緒に使うとうまく動かないという問題が発生していました。これは複数のイベントハンドラを登録するときに、それぞれのhandlerからeventもしくはkintone.Promiseを返すようにしなければいけないという問題のようでした。もし上記の私の記述が正しければ、サンプルプログラムの修正と、event handlerが返すべき値についてドキュメントに追加することを希望します。
t 様
お世話になっております。
cybozu developer network 運営局です。
ご指摘ありがとうございます。
ご指摘の通り、他のプラグインや複数のカスタマイズを適用する場合は、event オブジェクトの返却が必要です。
ドキュメント修正を検討させていただきます。よろしくお願いいたします。
プロパティ「カテゴリ」が具体的に何を指しているのかを教えてください。
プロパティとあるので、カテゴリー機能とは別のものと認識しました。
これを前提に、一例として「発生するイベント」の app.record.create.submit ページを確認してみましたが、「カテゴリ」に該当する項目を確認することができませんでした。
よろしくお願いいたします。
takemoto 様
お世話になっております。cybozu developer network 運営局です。
> プロパティとあるので、カテゴリー機能とは別のものと認識しました。
こちらは、リンク先のカテゴリー機能と同一のものとなります。
カテゴリー機能を有効にすると、「カテゴリー」というフィールドコードのフィールドが追加されます。
カテゴリー機能を有効にしていないアプリの場合は気になさらなくて問題ありません。
恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっているため、
もしも上記をお試しいただいた際の技術的なご質問などがあればcybozu developer コミュニティをご活用ください。
よろしくお願い致します。