はじめに
kintoneでは、定期的に機能改善やアップデートが行われます。
このとき、
kintone APIドキュメント
に記載していない方法でkintoneカスタマイズを行うと、kintoneの機能追加の影響を受けて、動作しなくなるリスクがあります。
たとえば、直接HTML要素の参照や編集をする「DOM操作」と呼ばれる実装方法などがあります。
そこで本記事では、kintoneのアップデートで動かなくなるリスクがあるカスタマイズの例を紹介します。
例を通じて、アップデートの影響を受けにくいカスタマイズについて考えていきましょう。
具体例
ここからは、具体例を交えて説明します。
回避策がある場合はその内容についても説明します。
DOM操作
HTML要素の参照
kintoneの画面上に要素(ボタンなど)を表示したい場合は、次のような方法で取得したスペース要素にボタンなどの要素を追加してください。
|
|
ID名やClass名の指定は動かなくなるリスクがあります。
たとえば以下のようなコードです。
クラス名のrecordlist-cell-gaiaは変更される可能性があるためです。
|
|
もちろんjQueryを使ってjQuery('.recordlist-cell-gaia')のように指定するのも同様です。
つまり、APIで取得できる場所以外に要素を追加することは、動かなくなるリスクがあります。
以下のようにHTMLタグを参照するのも同様です。
|
|
positionを使った要素の配置
スペース要素やメニュー上側の空白要素を取得して、そこにHTML要素を追加するのはAPIドキュメントに準じた方法です。
しかし、positionプロパティを利用して任意の位置にHTML要素を追加する方法は、動かなくなるリスクがあります。
親要素などのスタイルは、変更になる可能性があるためです。
たとえば以下のようなコードが該当します。
|
|
HTML要素の操作
getFieldElement()で取得した要素はスタイル変更のみがAPIドキュメントに準じた方法です。
詳細は
フィールド要素を取得する
を確認してください。
|
|
スタイル変更以外は動かなくなるリスクがあります。
たとえば以下のようなイベント取得です。
|
|
マウスやキーボード入力のイベントを利用したい場合は、以下の手順をおすすめします。
- スペース要素を取得する。
- スペース要素にテキストボックスなどを追加する。
- テキストボックスのイベントを利用する。
- 必要なタイミングで入力値を利用する。
例)レコード保存実行前イベントで入力値をkintoneに反映する。
URLの利用
kintone画面のURLの取得
kintoneのURLは将来的に変更される可能性があり、JavaScriptコード内に直接URLを記述している場合、カスタマイズに影響する恐れがあります。
そのため、kintoneのURLを取得する場合は、
kintone.buildPageUrl()
を利用してください。
|
|
パスやクエリ文字列を利用して直接URLを指定する方法は、kintoneのURLの変更があると、動かなくなるリスクがあります。
たとえば以下のようなコードです。
|
|
外部データの受け渡し
外部システムや他のアプリからデータを取得したい場合は、URLパラメーター(クエリ文字列)の使用を避け、kintone REST APIを利用してください。
|
|
URLパラメーター(クエリ文字列)を利用して外部のデータを取得する方法は、kintoneのURLの変更や仕様変更があると、動かなくなるリスクがあります。
たとえば以下のような、画面遷移元のアプリでURLパラメーターを付与し、画面遷移先のアプリでそのパラメーターを取得する例です。
画面遷移元:URLパラメーターでデータを渡す例
|
|
画面遷移先:URLパラメーターを取得する例
|
|
おわりに
今回取り上げた、リスクのあるカスタマイズ方法は一例です。
kintoneのアップデートで影響を受ける可能性のある実装方法のイメージがつかめる内容になっていれば幸いです。
このTipsは、2025年11月版kintoneで動作を確認しています。
